about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix4
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix68
-rw-r--r--pkgs/applications/emulators/retroarch/hashes.json78
-rw-r--r--pkgs/applications/graphics/pikopixel/default.nix8
-rw-r--r--pkgs/applications/misc/bambu-studio/default.nix2
-rw-r--r--pkgs/applications/misc/bambu-studio/meshboolean-const.patch21
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix4
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/generic.nix14
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix4
-rw-r--r--pkgs/applications/window-managers/owl/default.nix8
-rw-r--r--pkgs/by-name/dm/dmarc-report-converter/package.nix4
-rw-r--r--pkgs/by-name/fe/feather/package.nix4
-rw-r--r--pkgs/by-name/fr/frequest/package.nix60
-rw-r--r--pkgs/by-name/gi/git-agecrypt/package.nix38
-rw-r--r--pkgs/by-name/ja/jan/package.nix4
-rw-r--r--pkgs/by-name/ju/just/package.nix6
-rw-r--r--pkgs/by-name/ka/kana/package.nix74
-rw-r--r--pkgs/by-name/op/openscad-unstable/package.nix39
-rw-r--r--pkgs/by-name/op/openscad-unstable/test.diff42
-rw-r--r--pkgs/by-name/re/reproxy/package.nix37
-rw-r--r--pkgs/by-name/ti/tippecanoe/package.nix4
-rw-r--r--pkgs/by-name/uv/uv/Cargo.lock31
-rw-r--r--pkgs/by-name/uv/uv/package.nix4
-rw-r--r--pkgs/desktops/gnustep/back/default.nix21
-rw-r--r--pkgs/desktops/gnustep/base/default.nix44
-rw-r--r--pkgs/desktops/gnustep/default.nix17
-rw-r--r--pkgs/desktops/gnustep/gorm/default.nix24
-rw-r--r--pkgs/desktops/gnustep/gui/default.nix23
-rw-r--r--pkgs/desktops/gnustep/gworkspace/default.nix28
-rw-r--r--pkgs/desktops/gnustep/libobjc2/default.nix16
-rw-r--r--pkgs/desktops/gnustep/make/builder.sh127
-rw-r--r--pkgs/desktops/gnustep/make/default.nix23
-rw-r--r--pkgs/desktops/gnustep/make/gsmakeDerivation.nix19
-rw-r--r--pkgs/desktops/gnustep/make/setup-hook.sh96
-rw-r--r--pkgs/desktops/gnustep/make/wrapper.sh4
-rw-r--r--pkgs/desktops/gnustep/projectcenter/default.nix33
-rw-r--r--pkgs/desktops/gnustep/systempreferences/default.nix32
-rw-r--r--pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix8
-rw-r--r--pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh96
-rw-r--r--pkgs/development/compilers/idris2/idris2-lsp.nix9
-rw-r--r--pkgs/development/compilers/rust/make-rust-platform.nix4
-rw-r--r--pkgs/development/ocaml-modules/cry/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/eio/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/eliom/default.nix4
-rw-r--r--pkgs/development/php-packages/castor/default.nix16
-rw-r--r--pkgs/development/php-packages/phpstan/default.nix6
-rw-r--r--pkgs/development/python-modules/axis/default.nix4
-rw-r--r--pkgs/development/python-modules/mitmproxy/default.nix4
-rw-r--r--pkgs/development/python-modules/pypinyin/default.nix4
-rw-r--r--pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix44
-rw-r--r--pkgs/development/python-modules/xiaomi-ble/default.nix4
-rw-r--r--pkgs/development/r-modules/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch41
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/default.nix662
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/no-arc.patch34
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json1585
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/upb-clang16.patch57
-rwxr-xr-xpkgs/development/tools/build-managers/bazel/bazel_4/update-srcDeps.py54
-rw-r--r--pkgs/development/tools/rust/cargo-deny/default.nix6
-rw-r--r--pkgs/misc/scrcpy/default.nix6
-rw-r--r--pkgs/os-specific/linux/ch9344/default.nix10
-rw-r--r--pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch26
-rw-r--r--pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch13
-rw-r--r--pkgs/os-specific/linux/kernel/zen-kernels.nix4
-rw-r--r--pkgs/os-specific/linux/sysdig/default.nix6
-rw-r--r--pkgs/servers/gotosocial/default.nix6
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix4
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py2
-rw-r--r--pkgs/servers/reproxy/default.nix45
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgvecto-rs/0001-read-clang-flags-from-environment.diff19
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgvecto-rs/Cargo.lock3626
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix118
-rw-r--r--pkgs/servers/sql/postgresql/packages.nix2
-rw-r--r--pkgs/servers/squid/default.nix4
-rw-r--r--pkgs/servers/tautulli/default.nix4
-rw-r--r--pkgs/servers/web-apps/wordpress/default.nix4
-rw-r--r--pkgs/tools/admin/granted/default.nix4
-rw-r--r--pkgs/tools/audio/liquidsoap/full.nix7
-rw-r--r--pkgs/tools/misc/rshim-user-space/default.nix4
-rw-r--r--pkgs/tools/misc/yt-dlp/default.nix19
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix14
-rw-r--r--pkgs/top-level/python-packages.nix2
83 files changed, 4716 insertions, 2954 deletions
diff --git a/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix b/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix
index 9c82b2ef60f8..530b28f30844 100644
--- a/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, vscode-utils, callPackage }:
 let
-  version = "1.42.0";
+  version = "1.48.0";
   rescript-editor-analysis = callPackage ./rescript-editor-analysis.nix { inherit version; };
   arch =
     if stdenv.isLinux then "linux"
@@ -13,7 +13,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
     name = "rescript-vscode";
     publisher = "chenglou92";
     inherit version;
-    sha256 = "sha256-Po7zuppr8EHSfg2sDzkNn0KARncsiNVPoRsd25zc/xg=";
+    sha256 = "sha256-/1nDuj/kSdkV6PlbdlOLfUKQeuvyL2VhPjUAr9kq2NM=";
   };
   postPatch = ''
     rm -r ${analysisDir}
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index e2fdd0ed37ee..126fb0cc65a4 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -1986,6 +1986,22 @@ let
         };
       };
 
+      hashicorp.hcl = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "HCL";
+          publisher = "HashiCorp";
+          version = "0.3.2";
+          sha256 = "sha256-cxF3knYY29PvT3rkRS8SGxMn9vzt56wwBXpk2PqO0mo=";
+        };
+        meta = {
+          description = "HashiCorp HCL syntax";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=HashiCorp.HCL";
+          homepage = "https://github.com/hashicorp/vscode-hcl";
+          license = lib.licenses.mpl20;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       hashicorp.terraform = callPackage ./hashicorp.terraform { };
 
       haskell.haskell = buildVscodeMarketplaceExtension {
@@ -2971,6 +2987,22 @@ let
         };
       };
 
+      naumovs.theme-oceanicnext = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "theme-oceanicnext";
+          publisher = "naumovs";
+          version = "0.0.4";
+          sha256 = "sha256-romhWL3s0NVZ3kptSNT4/X9WkgakgNNfFElaBCo6jj4=";
+        };
+        meta = {
+          description = "Oceanic Next theme for VSCode + dimmed bg version for better looking UI";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=naumovs.theme-oceanicnext";
+          homepage = "https://github.com/voronianski/oceanic-next-color-scheme";
+          license = lib.licenses.unlicense;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       njpwerner.autodocstring = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "autodocstring";
@@ -3447,8 +3479,8 @@ let
         mktplcRef = {
           publisher = "shd101wyy";
           name = "markdown-preview-enhanced";
-          version = "0.8.10";
-          sha256 = "sha256-BjTV2uH9QqCS1VJ94XXgzNMJb4FB4Ee+t/5uAQfJCuM=";
+          version = "0.8.12";
+          sha256 = "sha256-4Iq6idux029i7cBV3x79ZRAbSk3ymqx+Q2jv0zV9ZTI=";
         };
         meta = {
           description = "Provides a live preview of markdown using either markdown-it or pandoc";
@@ -3730,6 +3762,22 @@ let
         };
       };
 
+      tal7aouy.icons = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "icons";
+          publisher = "tal7aouy";
+          version = "3.8.0";
+          sha256 = "sha256-PdhNFyVUWcOfli/ZlT+6TmtWrV31fBP1E1Vd4QWOY+A=";
+        };
+        meta = {
+          description = "Icons for Visual Studio Code.";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=tal7aouy.icons";
+          homepage = "https://github.com/tal7aouy/vscode-icons";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       tamasfe.even-better-toml = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "even-better-toml";
@@ -4063,6 +4111,22 @@ let
         };
       };
 
+      vlanguage.vscode-vlang = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-vlang";
+          publisher = "vlanguage";
+          version = "0.1.14";
+          sha256 = "sha256-hlBALxBs5wZZFk4lgAkdkGs731Xuc2p0qxffOW6mMWQ=";
+        };
+        meta = {
+          description = "V language support (syntax highlighting, formatter, snippets) for Visual Studio Code.";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=vlanguage.vscode-vlang";
+          homepage = "https://github.com/vlang/vscode-vlang";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       vscjava.vscode-gradle = buildVscodeMarketplaceExtension rec {
         mktplcRef = {
           name = "vscode-gradle";
diff --git a/pkgs/applications/emulators/retroarch/hashes.json b/pkgs/applications/emulators/retroarch/hashes.json
index 558c24a2ed88..8dba4b9ed5da 100644
--- a/pkgs/applications/emulators/retroarch/hashes.json
+++ b/pkgs/applications/emulators/retroarch/hashes.json
@@ -55,20 +55,20 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-pce-libretro",
-            "rev": "95b5ea18a694f5a05b1c0cda20928c825d981238",
-            "hash": "sha256-4Y2dyELUGWycCQ1UA0Ov6Ijh1t+KgSL1AtDefbRmjbA="
+            "rev": "96a654ae2b2df1cc12dc7f1f2d1822db562aa51f",
+            "hash": "sha256-Tz9FA2Kqu8R2pXSTgbr5Mxu4VKrURWWpy+J3R3/CHpk="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-08"
     },
     "beetle-pce-fast": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "beetle-pce-fast-libretro",
-            "rev": "28180934e9d7f1a6ec655adde0b81f0b167732ad",
-            "hash": "sha256-Kt1Bh32zoJynbqp/0ARngPTYHlvp6k/Ya09l8/736gk="
+            "rev": "f450a7118a3b4e8524cdd915aa610bd364e64dde",
+            "hash": "sha256-VHW+MJT68wIoSV8H24484uyGK7/cySFMITcpu6zqo3A="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-08"
     },
     "beetle-pcfx": {
         "fetcher": "fetchFromGitHub",
@@ -85,10 +85,10 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-psx-libretro",
-            "rev": "680bbf0e2a4f9bc2b534d213416456baa9c95212",
-            "hash": "sha256-QmiCokeMtQC2+cwWFovve2+c3pahD+IdOFBRAXEPV0k="
+            "rev": "b9018ad9776de0d92d05f6d6c1017f1ac07e9238",
+            "hash": "sha256-1xxJ33IiTgmqbH4vzEGBc3eKe1Wz67TI1RTiipr9/Cg="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-08"
     },
     "beetle-saturn": {
         "fetcher": "fetchFromGitHub",
@@ -115,10 +115,10 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-supergrafx-libretro",
-            "rev": "29ff9e00a85db3d462cca42543a84597c421c99c",
-            "hash": "sha256-UZt1yFcwgdY/TbDs+GQ73Nu5KRA1R8gdKs73IQC1mCg="
+            "rev": "239d25f4c2bbb6e66d3e48502907d3d611119a22",
+            "hash": "sha256-8SP/SOJR/5tDkpysYTAuDPeQJCaAVgXE9CieSj1H4ZQ="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-08"
     },
     "beetle-vb": {
         "fetcher": "fetchFromGitHub",
@@ -165,10 +165,10 @@
         "src": {
             "owner": "libretro",
             "repo": "bsnes-libretro",
-            "rev": "9e9b928e0153f663cf4802f266315ab092067b7e",
-            "hash": "sha256-Fn1bz3TC+8CEmGDNcll0yfzBpDPvfS1vknf49ogNCIQ="
+            "rev": "9c688ea5cbbb0e8c586414e07305cfbdffbf83e2",
+            "hash": "sha256-tte90wZfrkkNzjsUhmGGf/eKj6vwskcQAQTdqxg9wkE="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-09"
     },
     "bsnes-hd": {
         "fetcher": "fetchFromGitHub",
@@ -287,10 +287,10 @@
         "src": {
             "owner": "libretro",
             "repo": "fbneo",
-            "rev": "a9c41d1e1132b1a7aad48c0f8e94fcf9c7ba0f9f",
-            "hash": "sha256-H4pJruHqJ4p3tBykm015U+wApHrAeVaZO9nLJ9Rc0NQ="
+            "rev": "6fc8060a75fd75c5b292fbef488ed8dd37c7bc34",
+            "hash": "sha256-Wjh6ab5kLlfX4QVv+d6YgnuvWtDat9wgJ8dQdl7MH2A="
         },
-        "version": "unstable-2024-03-03"
+        "version": "unstable-2024-03-06"
     },
     "fceumm": {
         "fetcher": "fetchFromGitHub",
@@ -307,11 +307,11 @@
         "src": {
             "owner": "flyinghead",
             "repo": "flycast",
-            "rev": "391da7023f63c2afd32af72ac9f2cfb02bbc7eb6",
-            "hash": "sha256-fcNpFl6VwaoL2mWZOgyVoJWX9CV2KbWctukdxxo797I=",
+            "rev": "464defe0d791795553a6cd2f0dbe05b437ecd068",
+            "hash": "sha256-Gnp8MMerKweUnDg8fIoAF3vkIFVVbQdn3qjxZYLBTEY=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-03-04"
+        "version": "unstable-2024-03-10"
     },
     "fmsx": {
         "fetcher": "fetchFromGitHub",
@@ -348,20 +348,20 @@
         "src": {
             "owner": "libretro",
             "repo": "gambatte-libretro",
-            "rev": "9806d3f12bc3a831fad3f71c6fbad6f93d83581c",
-            "hash": "sha256-EdqS410TZyRqE/nd/oLJt7dauN0DCtNnhB6k6CPd/tc="
+            "rev": "76c875138f6ffe1b1cf983b49758004cd53785ce",
+            "hash": "sha256-HcZY/0JK+tqvrI70xzzEkDH8hX4Xk7ojLsSp/a3EWnk="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-08"
     },
     "genesis-plus-gx": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "Genesis-Plus-GX",
-            "rev": "d434ad9ee418247490a8560b52e0651d25304f35",
-            "hash": "sha256-v6IYku+9hLlGD0sgkzoatdD7Glp/3pgwBE2K4hdsFec="
+            "rev": "541229daa9e8f706135531c28c7abec4efd08d48",
+            "hash": "sha256-0yytgnO6bBt2ssapOu+6S488peeCzKS1fE7Znyk51HA="
         },
-        "version": "unstable-2024-03-02"
+        "version": "unstable-2024-03-09"
     },
     "gpsp": {
         "fetcher": "fetchFromGitHub",
@@ -438,10 +438,10 @@
         "src": {
             "owner": "libretro",
             "repo": "mame2003-plus-libretro",
-            "rev": "a7cb863de48247c771a0fcc71d519131eae4e9c6",
-            "hash": "sha256-Y/Zyfck5tJ6oVsL/WjNXJZdPE5THeyBD5tNzJQaLSn8="
+            "rev": "f8b0565fd3278f2efbc3e68fc929a912645e211b",
+            "hash": "sha256-jOQxPUTbKQH0PKJSOItEpSHaNPzMlYOJ2CUgzSLHti4="
         },
-        "version": "unstable-2024-03-02"
+        "version": "unstable-2024-03-10"
     },
     "mame2010": {
         "fetcher": "fetchFromGitHub",
@@ -539,10 +539,10 @@
         "src": {
             "owner": "libretro",
             "repo": "mupen64plus-libretro-nx",
-            "rev": "fa55ddca926d3c3ad2285911646919def4aa6fa3",
-            "hash": "sha256-Fn/qSQDR8FuHG9eLE0I24wUa0sdosrl6+lhnf9cD+yQ="
+            "rev": "3f794eec4dc4af2f22ecce507f2da324381d3d92",
+            "hash": "sha256-xO01TAjW8otnoU8fzmK69BufoQn3eY9BPamc3ISqBn8="
         },
-        "version": "unstable-2024-02-06"
+        "version": "unstable-2024-03-07"
     },
     "neocd": {
         "fetcher": "fetchFromGitHub",
@@ -662,11 +662,11 @@
         "src": {
             "owner": "hrydgard",
             "repo": "ppsspp",
-            "rev": "0159102a191d43de7ae51775a79846efa2635988",
-            "hash": "sha256-b7QOOpeoVJUComVOlMtZK8B5w5vkE6rxJVEHecJE19k=",
+            "rev": "a0aaab9c47bae66fd834354977a562baec581a54",
+            "hash": "sha256-N+s4BzOsXUMqdOnfy0Th8euaD2EvRoYEie706RNuIoo=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-02-28"
+        "version": "unstable-2024-03-10"
     },
     "prboom": {
         "fetcher": "fetchFromGitHub",
@@ -793,10 +793,10 @@
         "src": {
             "owner": "stella-emu",
             "repo": "stella",
-            "rev": "a311e1d714db3837ae4c05e2fab0abcf092a2e54",
-            "hash": "sha256-QJirSJleSPezNoyH2DKkaoNmGY3r/5J64IHBp+MeFvI="
+            "rev": "8e8549c1c441e62c2bac0ae5a6489ba3e15412c6",
+            "hash": "sha256-gcIBtLpfmjPHxnixMOF/onNyIclC8sDrmgTi3zHW0Mc="
         },
-        "version": "unstable-2024-03-03"
+        "version": "unstable-2024-03-08"
     },
     "stella2014": {
         "fetcher": "fetchFromGitHub",
diff --git a/pkgs/applications/graphics/pikopixel/default.nix b/pkgs/applications/graphics/pikopixel/default.nix
index 816d9af62aa3..f8719cc0a4cd 100644
--- a/pkgs/applications/graphics/pikopixel/default.nix
+++ b/pkgs/applications/graphics/pikopixel/default.nix
@@ -1,9 +1,10 @@
 { lib
+, clangStdenv
 , fetchurl
 , gnustep
 }:
 
-gnustep.gsmakeDerivation rec {
+clangStdenv.mkDerivation rec {
   pname = "pikopixel";
   version = "1.0-b10";
 
@@ -14,6 +15,11 @@ gnustep.gsmakeDerivation rec {
 
   sourceRoot = "PikoPixel.Sources.${version}/PikoPixel";
 
+  nativeBuildInputs = [
+    gnustep.make
+    gnustep.wrapGNUstepAppsHook
+  ];
+
   buildInputs = [
     gnustep.base
     gnustep.gui
diff --git a/pkgs/applications/misc/bambu-studio/default.nix b/pkgs/applications/misc/bambu-studio/default.nix
index 1455558dcc2e..60559768994e 100644
--- a/pkgs/applications/misc/bambu-studio/default.nix
+++ b/pkgs/applications/misc/bambu-studio/default.nix
@@ -113,6 +113,8 @@ stdenv.mkDerivation rec {
   patches = [
     # Fix for webkitgtk linking
     ./0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
+    # Fix build with cgal-5.6.1+
+    ./meshboolean-const.patch
   ];
 
   doCheck = true;
diff --git a/pkgs/applications/misc/bambu-studio/meshboolean-const.patch b/pkgs/applications/misc/bambu-studio/meshboolean-const.patch
new file mode 100644
index 000000000000..68e72591d8f4
--- /dev/null
+++ b/pkgs/applications/misc/bambu-studio/meshboolean-const.patch
@@ -0,0 +1,21 @@
+Fix build with cgal 5.6.1+
+
+diff --git a/src/libslic3r/MeshBoolean.cpp b/src/libslic3r/MeshBoolean.cpp
+index 50bbc099..b05245d3 100644
+--- a/src/libslic3r/MeshBoolean.cpp
++++ b/src/libslic3r/MeshBoolean.cpp
+@@ -200,12 +200,12 @@ indexed_triangle_set cgal_to_indexed_triangle_set(const _Mesh &cgalmesh)
+     const auto &vertices = cgalmesh.vertices();
+     int vsize = int(vertices.size());
+
+-    for (auto &vi : vertices) {
++    for (const auto &vi : vertices) {
+         auto &v = cgalmesh.point(vi); // Don't ask...
+         its.vertices.emplace_back(to_vec3f(v));
+     }
+
+-    for (auto &face : faces) {
++    for (const auto &face : faces) {
+         auto vtc = cgalmesh.vertices_around_face(cgalmesh.halfedge(face));
+
+         int i = 0;
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index 88b773f7c62e..5e2a7195d0ae 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -4,7 +4,7 @@ let
     if stdenv.isLinux then {
       stable = "0.0.44";
       ptb = "0.0.72";
-      canary = "0.0.285";
+      canary = "0.0.294";
       development = "0.0.13";
     } else {
       stable = "0.0.294";
@@ -25,7 +25,7 @@ let
       };
       canary = fetchurl {
         url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-        hash = "sha256-dfBwe/YOzUUAfBrf51mNXtpyGL3Mp235e6TfQM4h04s=";
+        hash = "sha256-3D48+eg8hqToGepFdQznUTTUu37WRcZJ9kgG+wpxFAE=";
       };
       development = fetchurl {
         url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
diff --git a/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
index ccaf0361e2d8..5fb25d1cc93c 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -22,6 +22,18 @@ let
       ln -sf $out/lib/libssl.so $out/lib/libssl.so.1.0.0
     '';
   };
+
+  opencv4' = symlinkJoin {
+    name = "opencv4-compat";
+    nativeBuildInputs = [ makeWrapper ];
+    paths = [ opencv4 ];
+    postBuild = ''
+      for so in ${opencv4}/lib/*.so; do
+        ln -s "$so" $out/lib/$(basename "$so").407
+      done
+    '';
+  };
+
 in
 
 stdenv.mkDerivation rec {
@@ -97,7 +109,7 @@ stdenv.mkDerivation rec {
     mesa
     nspr
     nss
-    opencv4
+    opencv4'
     openssl'
     pango
     speex
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index b6d79695f5d3..2802ed8a5b96 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -49,13 +49,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mkvtoolnix";
-  version = "82.0";
+  version = "83.0";
 
   src = fetchFromGitLab {
     owner = "mbunkus";
     repo = "mkvtoolnix";
     rev = "release-${version}";
-    hash = "sha256-3WULzEkjMH4PUETJeKmDKn9PdanWf581O2mI/IqN8YM=";
+    hash = "sha256-MHi3ewxCn560vpVfOucV34CNj/95U2OFd6bxAjtMBoc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/owl/default.nix b/pkgs/applications/window-managers/owl/default.nix
index fa9ea8e8b6a1..d3f018eb1202 100644
--- a/pkgs/applications/window-managers/owl/default.nix
+++ b/pkgs/applications/window-managers/owl/default.nix
@@ -1,5 +1,5 @@
 { lib
-, stdenv
+, clangStdenv
 , fetchFromGitHub
 , gnustep
 , libxkbcommon
@@ -12,9 +12,10 @@
 assert wayland.withLibraries;
 
 let
-  mkDerivation = if stdenv.isDarwin then stdenv.mkDerivation else gnustep.gsmakeDerivation;
+  stdenv = clangStdenv;
 in
-mkDerivation {
+
+stdenv.mkDerivation {
   pname = "owl-compositor";
   version = "unstable-2021-11-10";
 
@@ -43,6 +44,7 @@ mkDerivation {
     darwin.bootstrap_cmds
   ] ++ lib.optionals (!stdenv.isDarwin) [
     gnustep.make
+    gnustep.wrapGNUstepAppsHook
   ];
 
   buildInputs = [
diff --git a/pkgs/by-name/dm/dmarc-report-converter/package.nix b/pkgs/by-name/dm/dmarc-report-converter/package.nix
index 54c19d90d0d1..993c70c2c2ed 100644
--- a/pkgs/by-name/dm/dmarc-report-converter/package.nix
+++ b/pkgs/by-name/dm/dmarc-report-converter/package.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "dmarc-report-converter";
-  version = "0.6.5";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "tierpod";
     repo = "dmarc-report-converter";
     rev = "v${version}";
-    hash = "sha256-4rAQhZmqYldilCKomBfuyqS0vcUg5yS4nqp84XSjam4=";
+    hash = "sha256-doipM3SZmU/QUglN0UA2IpRgrhdMnuCmMPRs0OWRxPE=";
   };
 
   vendorHash = null;
diff --git a/pkgs/by-name/fe/feather/package.nix b/pkgs/by-name/fe/feather/package.nix
index 67b0770d65c7..de680e74caf2 100644
--- a/pkgs/by-name/fe/feather/package.nix
+++ b/pkgs/by-name/fe/feather/package.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "feather";
-  version = "2.6.3";
+  version = "2.6.4";
 
   src = fetchFromGitHub {
     owner = "feather-wallet";
     repo = "feather";
     rev = finalAttrs.version;
-    hash = "sha256-pQnaJbKznK1i8wn7t8ZnxLVu1LV/D47krxZZ0j6Mw6g=";
+    hash = "sha256-NFFIpHyie8jABfmiJP38VbPFjZgaNc+i5JcpbRr+mBU=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/by-name/fr/frequest/package.nix b/pkgs/by-name/fr/frequest/package.nix
new file mode 100644
index 000000000000..cd157115ecfa
--- /dev/null
+++ b/pkgs/by-name/fr/frequest/package.nix
@@ -0,0 +1,60 @@
+{ lib, stdenv, fetchFromGitHub, qt5 }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "frequest";
+  version = "1.2a";
+
+  srcs = [
+    (fetchFromGitHub {
+      owner = "fabiobento512";
+      name = "frequest";
+      repo = "FRequest";
+      rev = "v${finalAttrs.version}";
+      hash = "sha256-fdn3MK5GWBOhJjpMtRaytO9EsVzz6KJknDhqWtAyXCc=";
+    })
+    # The application depends on hard-coded relative paths to ../CommonLibs and ../CommonUtils.
+    # See https://github.com/fabiobento512/FRequest/wiki/Building-FRequest for more info.
+    # Upstream provides no tags for these dependencies, use latest commit on their `master` branch.
+    # Changing the name of these srcs will break the build.
+    (fetchFromGitHub {
+      owner = "fabiobento512";
+      name = "CommonLibs";
+      repo = "CommonLibs";
+      rev = "d3906931bb06ddf4194ff711a59e1dcff80fa82f";
+      hash = "sha256-iLJJ95yJ+VjNPuk8fNEDvYBI0db0rcfJF12a9azGv1Y=";
+    })
+    (fetchFromGitHub {
+      owner = "fabiobento512";
+      name = "CommonUtils";
+      repo = "CommonUtils";
+      rev = "53970984f6538d78350be1b9426032bcb5bcf818";
+      hash = "sha256-nRv9DriSOuAiWhy+KkOVNEz5oSgNNNJZqk8sNwgbx8U=";
+    })
+  ];
+  sourceRoot = "frequest";
+
+  buildInputs = [
+    qt5.qtbase
+  ];
+
+  nativeBuildInputs = [
+    qt5.wrapQtAppsHook
+    qt5.qmake
+  ];
+
+  # Without this, nothing gets installed in $out.
+  postInstall = ''
+    install -D FRequest $out/bin/FRequest
+    install -D LinuxAppImageDeployment/frequest.desktop $out/share/applications/frequest.desktop
+    install -D LinuxAppImageDeployment/frequest_icon.png $out/share/icons/hicolor/128x128/apps/frequest_icon.png
+  '';
+
+  meta = {
+    description = "A fast, lightweight and opensource desktop application to make HTTP(s) requests";
+    homepage = "https://fabiobento512.github.io/FRequest";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ eliandoran ];
+    platforms = lib.platforms.linux;
+    mainProgram = "frequest";
+  };
+})
diff --git a/pkgs/by-name/gi/git-agecrypt/package.nix b/pkgs/by-name/gi/git-agecrypt/package.nix
new file mode 100644
index 000000000000..62760315484b
--- /dev/null
+++ b/pkgs/by-name/gi/git-agecrypt/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, darwin
+, libgit2
+, git
+, pkg-config
+, zlib
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "git-agecrypt";
+  version = "unstable-2023-07-14";
+
+  src = fetchFromGitHub {
+    owner = "vlaci";
+    repo = "git-agecrypt";
+    rev = "945b80556d8848f6e85a8cc0053f9020bdc8b359";
+    hash = "sha256-6FjyJRYGyZt+uvYjXWvXI7DGq/+BNZHSSAT/DhOsF/E=";
+  };
+
+  cargoHash = "sha256-QCV0DT0kcDRMzVc+9uTn9FYPpf+xvKJbakP6CHRcibo=";
+
+  nativeBuildInputs = [ pkg-config git ];
+
+  buildInputs = [ libgit2 zlib ]
+    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+
+
+  meta = with lib; {
+    description = "Alternative to git-crypt using age instead of GPG.";
+    homepage = "https://github.com/vlaci/git-agecrypt";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ kuznetsss ];
+    mainProgram = "git-agecrypt";
+  };
+}
diff --git a/pkgs/by-name/ja/jan/package.nix b/pkgs/by-name/ja/jan/package.nix
index 44296231986f..181a7006c24c 100644
--- a/pkgs/by-name/ja/jan/package.nix
+++ b/pkgs/by-name/ja/jan/package.nix
@@ -5,10 +5,10 @@
 
 let
   pname = "jan";
-  version = "0.4.7";
+  version = "0.4.8";
   src = fetchurl {
     url = "https://github.com/janhq/jan/releases/download/v${version}/jan-linux-x86_64-${version}.AppImage";
-    hash = "sha256-Mn7rIBEf46JbNof8h3z66TGdGKnb0FGMJc46JncA0KM=";
+    hash = "sha256-8Vi2KK+5Wk/K+RJZ0/cbRUb8L25WEiLdo5ay8+ichdw=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/pkgs/by-name/ju/just/package.nix b/pkgs/by-name/ju/just/package.nix
index c3a8c11eb334..c613853ef3d9 100644
--- a/pkgs/by-name/ju/just/package.nix
+++ b/pkgs/by-name/ju/just/package.nix
@@ -11,17 +11,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "1.25.1";
+  version = "1.25.2";
   outputs = [ "out" "man" "doc" ];
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-CvOnvUez2mfta9aXmdsLFxpVB/TGDw0y0ha3OyNJ2DE=";
+    hash = "sha256-w7tHLjIFnlvyuTw5yG6zxJtQ7oDNdKRXHIRKY638vTo=";
   };
 
-  cargoHash = "sha256-b4hprcYOcY0z0UnUe3pGc87j+X3n52btYlaCemETLYg=";
+  cargoHash = "sha256-VL2uNbEtqOv3xmLukhdCmo3lrfx5yFwOAMGwgBlgAVw=";
 
   nativeBuildInputs = [ installShellFiles mdbook ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
diff --git a/pkgs/by-name/ka/kana/package.nix b/pkgs/by-name/ka/kana/package.nix
new file mode 100644
index 000000000000..3fc7e8d3c257
--- /dev/null
+++ b/pkgs/by-name/ka/kana/package.nix
@@ -0,0 +1,74 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, rustPlatform
+, meson
+, ninja
+, pkg-config
+, rustc
+, cargo
+, wrapGAppsHook4
+, desktop-file-utils
+, libadwaita
+, gst_all_1
+, darwin
+}:
+
+stdenv.mkDerivation rec {
+  pname = "kana";
+  version = "1.4";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "fkinoshita";
+    repo = "Kana";
+    rev = "v${version}";
+    hash = "sha256-/Ri723ub8LMlhbPObC83bay63JuWIQpgxAT5UUYuwZI=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "kana-${version}";
+    hash = "sha256-Z7DpPe8/Tt8AcLjCwKbwzQTsLe6YvWBCG7DlDkkklew=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    cargo
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+  ] ++ (with gst_all_1; [
+    gstreamer
+    gst-plugins-base
+    gst-plugins-bad
+    gst-plugins-good
+  ]) ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Foundation
+  ];
+
+  # Workaround for the gettext-sys issue
+  # https://github.com/Koka/gettext-rs/issues/114
+  env.NIX_CFLAGS_COMPILE = lib.optionalString
+    (
+      stdenv.cc.isClang &&
+      lib.versionAtLeast stdenv.cc.version "16"
+    )
+    "-Wno-error=incompatible-function-pointer-types";
+
+  meta = with lib; {
+    description = "Learn Japanese hiragana and katakana characters";
+    homepage = "https://gitlab.gnome.org/fkinoshita/kana";
+    license = licenses.gpl3Plus;
+    mainProgram = "kana";
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/op/openscad-unstable/package.nix b/pkgs/by-name/op/openscad-unstable/package.nix
index cd14fb525c36..05aaf2dee012 100644
--- a/pkgs/by-name/op/openscad-unstable/package.nix
+++ b/pkgs/by-name/op/openscad-unstable/package.nix
@@ -15,25 +15,27 @@
 , flex
 , fontconfig
 , freetype
+, ghostscript
 , glib
 , glm
 , gmp
 , harfbuzz
 , hidapi
 , lib3mf
-, libGL
 , libGLU
 , libICE
 , libSM
 , libsForQt5
 , libspnav
 , libzip
+, mesa
 , mpfr
 , python3
 , tbb_2021_8
 , wayland
 , wayland-protocols
 , wrapGAppsHook
+, xorg
 }:
 let
   # get cccl from source to avoid license issues
@@ -79,24 +81,25 @@ in
 # clang consume much less RAM than GCC
 clangStdenv.mkDerivation rec {
   pname = "openscad-unstable";
-  version = "2024-02-18";
+  version = "2024-03-10";
   src = fetchFromGitHub {
     owner = "openscad";
     repo = "openscad";
-    rev = "f5688998760d6b85d7b280300388448c162edc42";
-    hash = "sha256-rQnih7Am7NvlrTwIGAN4QbZCcziFm6YOOT27wmjcY8A=";
+    rev = "db167b1df31fbd8a2101cf3a13dac148b0c2165d";
+    hash = "sha256-i2ZGYsNfMLDi3wRd/lohs9BuO2KuQ/7kJIXGtV65OQU=";
     fetchSubmodules = true;
   };
+  patches = [ ./test.diff ];
   nativeBuildInputs = [
-    pkg-config
-    cmake
-    ninja
+    (python3.withPackages (ps: with ps; [ numpy pillow ]))
     bison
+    cmake
     flex
-    python3
     libsForQt5.qt5.wrapQtAppsHook
     llvmPackages.bintools
     wrapGAppsHook
+    ninja
+    pkg-config
   ];
   buildInputs = with libsForQt5; with qt5; [
     # manifold dependencies
@@ -112,6 +115,7 @@ clangStdenv.mkDerivation rec {
     eigen
     fontconfig
     freetype
+    ghostscript
     glib
     gmp
     harfbuzz
@@ -124,7 +128,15 @@ clangStdenv.mkDerivation rec {
     qtbase
     qtmultimedia
   ]
-  ++ lib.optionals clangStdenv.isLinux [ libICE libSM libGLU libGL wayland wayland-protocols qtwayland ]
+  ++ lib.optionals clangStdenv.isLinux [
+    xorg.libXdmcp
+    libICE
+    libSM
+    wayland
+    wayland-protocols
+    qtwayland
+    libGLU
+  ]
   ++ lib.optional clangStdenv.isDarwin qtmacextras
   ;
   cmakeFlags = [
@@ -133,11 +145,18 @@ clangStdenv.mkDerivation rec {
     "-DUSE_BUILTIN_OPENCSG=ON" # bundled latest opencsg
     "-DOPENSCAD_VERSION=\"${builtins.replaceStrings ["-"] ["."] version}\""
     "-DCMAKE_UNITY_BUILD=ON" # faster build
-    "-DENABLE_TESTS=OFF" # tests do not work for now
     # IPO
     "-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld"
     "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
   ];
+  doCheck = true;
+  checkPhase = ''
+    # for running mesa llvmpipe
+    export __EGL_VENDOR_LIBRARY_FILENAMES=${mesa.drivers}/share/glvnd/egl_vendor.d/50_mesa.json
+    export LIBGL_DRIVERS_PATH=${mesa.drivers}/lib:${mesa.drivers}/lib/dri
+    # some fontconfig issues cause pdf output to have wrong font
+    ctest -j$NIX_BUILD_CORES -E pdfexporttest.\*
+  '';
   meta = with lib; {
     description = "3D parametric model compiler (unstable)";
     longDescription = ''
diff --git a/pkgs/by-name/op/openscad-unstable/test.diff b/pkgs/by-name/op/openscad-unstable/test.diff
new file mode 100644
index 000000000000..23b3983daddd
--- /dev/null
+++ b/pkgs/by-name/op/openscad-unstable/test.diff
@@ -0,0 +1,42 @@
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 5c1b40af4..917451dee 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -59,13 +59,14 @@ if(USE_IMAGE_COMPARE_PY)
+ 
+   # Since msys2 on Windows prefers bin/ over Scripts, we need to look for the actual folder to determine
+   # how to utilize the venv
+-  find_path(VENV_BIN_PATH activate PATHS "${VENV_DIR}/bin" "${VENV_DIR}/Scripts" NO_DEFAULT_PATH NO_CACHE)
+-  if(WIN32)
+-    set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python.exe")
+-  else()
+-    set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python")
+-  endif()
+-  if(EXISTS "${IMAGE_COMPARE_EXE}")
++  # find_path(VENV_BIN_PATH activate PATHS "${VENV_DIR}/bin" "${VENV_DIR}/Scripts" NO_DEFAULT_PATH NO_CACHE)
++  # if(WIN32)
++  #   set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python.exe")
++  # else()
++  #   set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python")
++  # endif()
++  set(IMAGE_COMPARE_EXE "python3")
++  # if(EXISTS "${IMAGE_COMPARE_EXE}")
+     message(STATUS "venv found, testing libraries")
+     execute_process(
+       COMMAND "${IMAGE_COMPARE_EXE}" "${CCSD}/image_compare.py" "--status"
+@@ -77,10 +78,10 @@ if(USE_IMAGE_COMPARE_PY)
+       message(STATUS "venv libraries complete")
+       set(BUILD_VENV FALSE)
+     endif()
+-  else()
+-    message(STATUS "venv not found")
+-    set(BUILD_VENV TRUE)
+-  endif()
++  # else()
++  #   message(STATUS "venv not found")
++  #   set(BUILD_VENV TRUE)
++  # endif()
+   if(BUILD_VENV)
+     message(STATUS "Setting up testing venv for image comparison")
+     execute_process(
+
diff --git a/pkgs/by-name/re/reproxy/package.nix b/pkgs/by-name/re/reproxy/package.nix
new file mode 100644
index 000000000000..f90ad1246cf8
--- /dev/null
+++ b/pkgs/by-name/re/reproxy/package.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "reproxy";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "umputun";
+    repo = "reproxy";
+    rev = "v${version}";
+    hash = "sha256-/ydpqi7O4z41YxYb/RngPWk/79h3MIxAopzqIDMgw1g=";
+  };
+
+  vendorHash = null;
+
+  ldflags = [
+    "-s" "-w" "-X main.revision=${version}"
+  ];
+
+  checkFlags = [
+    # Requires network access or fluky
+    "-skip=^Test(_MainWithPlugin|_MainWithSSL|_Main|Http_matchHandler|Http_withBasicAuth|File_Events|File_Events_BusyListener)$"
+  ];
+
+  postInstall = ''
+    mv $out/bin/{app,reproxy}
+  '';
+
+  meta = with lib; {
+    description = "Simple edge server / reverse proxy";
+    homepage = "https://reproxy.io/";
+    changelog = "https://github.com/umputun/reproxy/releases/tag/${src.rev}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sikmir ];
+    mainProgram = "reproxy";
+  };
+}
diff --git a/pkgs/by-name/ti/tippecanoe/package.nix b/pkgs/by-name/ti/tippecanoe/package.nix
index 056391f5119e..9c1960eb2220 100644
--- a/pkgs/by-name/ti/tippecanoe/package.nix
+++ b/pkgs/by-name/ti/tippecanoe/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tippecanoe";
-  version = "2.49.0";
+  version = "2.51.0";
 
   src = fetchFromGitHub {
     owner = "felt";
     repo = "tippecanoe";
     rev = finalAttrs.version;
-    hash = "sha256-Wu6TSld/mxCb4CFXf2oIZpDvX/j3Ujm7Vli4kp04u7c=";
+    hash = "sha256-5Cu+0Tn+ExxJTO5AjeTnIJtnpBNKR7nxudD77X696H0=";
   };
 
   buildInputs = [ sqlite zlib ];
diff --git a/pkgs/by-name/uv/uv/Cargo.lock b/pkgs/by-name/uv/uv/Cargo.lock
index cbab9d550a88..c3898d12ea70 100644
--- a/pkgs/by-name/uv/uv/Cargo.lock
+++ b/pkgs/by-name/uv/uv/Cargo.lock
@@ -915,6 +915,7 @@ version = "0.0.1"
 dependencies = [
  "anyhow",
  "cache-key",
+ "chrono",
  "data-encoding",
  "distribution-filename",
  "fs-err",
@@ -973,6 +974,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "encoding_rs_io"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83"
+dependencies = [
+ "encoding_rs",
+]
+
+[[package]]
 name = "equivalent"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2883,16 +2893,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "reqwest-netrc"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eca0c58cd4b2978f9697dea94302e772399f559cd175356eb631cb6daaa0b6db"
-dependencies = [
- "reqwest-middleware",
- "rust-netrc",
-]
-
-[[package]]
 name = "reqwest-retry"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4179,13 +4179,14 @@ checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 
 [[package]]
 name = "uv"
-version = "0.1.16"
+version = "0.1.17"
 dependencies = [
  "anstream",
  "anyhow",
  "assert_cmd",
  "assert_fs",
  "base64 0.21.7",
+ "byteorder",
  "chrono",
  "clap",
  "clap_complete_command",
@@ -4282,7 +4283,6 @@ dependencies = [
  "tokio",
  "toml",
  "tracing",
- "uv-extract",
  "uv-fs",
  "uv-interpreter",
  "uv-traits",
@@ -4318,6 +4318,7 @@ dependencies = [
  "async-trait",
  "async_http_range_reader",
  "async_zip",
+ "base64 0.21.7",
  "cache-key",
  "chrono",
  "distribution-filename",
@@ -4335,10 +4336,10 @@ dependencies = [
  "pypi-types",
  "reqwest",
  "reqwest-middleware",
- "reqwest-netrc",
  "reqwest-retry",
  "rkyv",
  "rmp-serde",
+ "rust-netrc",
  "rustc-hash",
  "serde",
  "serde_json",
@@ -4500,10 +4501,12 @@ name = "uv-fs"
 version = "0.0.1"
 dependencies = [
  "dunce",
+ "encoding_rs_io",
  "fs-err",
  "fs2",
  "junction",
  "tempfile",
+ "tokio",
  "tracing",
  "urlencoding",
  "uv-warnings",
@@ -4688,7 +4691,7 @@ dependencies = [
 
 [[package]]
 name = "uv-version"
-version = "0.1.16"
+version = "0.1.17"
 
 [[package]]
 name = "uv-virtualenv"
diff --git a/pkgs/by-name/uv/uv/package.nix b/pkgs/by-name/uv/uv/package.nix
index aec7d7dc3716..25d0e7360e19 100644
--- a/pkgs/by-name/uv/uv/package.nix
+++ b/pkgs/by-name/uv/uv/package.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "uv";
-  version = "0.1.16";
+  version = "0.1.17";
 
   src = fetchFromGitHub {
     owner = "astral-sh";
     repo = "uv";
     rev = version;
-    hash = "sha256-CvaYXtgd8eqzPNoXukjPwaoT/QOlUVKYNzD8Db6on9Q=";
+    hash = "sha256-nXH/9/c2UeG7LOJo0ZnozdI9df5cmVwICvgi0kRjgMU=";
   };
 
   cargoLock = {
diff --git a/pkgs/desktops/gnustep/back/default.nix b/pkgs/desktops/gnustep/back/default.nix
index 867c82881c1a..370143e1269f 100644
--- a/pkgs/desktops/gnustep/back/default.nix
+++ b/pkgs/desktops/gnustep/back/default.nix
@@ -1,7 +1,11 @@
-{ gsmakeDerivation
+{ lib
+, stdenv
+, make
+, wrapGNUstepAppsHook
 , cairo
 , fetchzip
-, base, gui
+, base
+, gui
 , fontconfig
 , freetype
 , pkg-config
@@ -9,18 +13,23 @@
 , libXmu
 }:
 
-gsmakeDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnustep-back";
   version = "0.30.0";
 
   src = fetchzip {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-${finalAttrs.version}.tar.gz";
     sha256 = "sha256-HD4PLdkE573nPWqFwffUmcHw8VYIl5rLiPKWrbnwpCI=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ make pkg-config wrapGNUstepAppsHook ];
   buildInputs = [ cairo base gui fontconfig freetype libXft libXmu ];
+
   meta = {
     description = "A generic backend for GNUstep";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnustep/base/default.nix b/pkgs/desktops/gnustep/base/default.nix
index 3803a88ce191..acda20c817d6 100644
--- a/pkgs/desktops/gnustep/base/default.nix
+++ b/pkgs/desktops/gnustep/base/default.nix
@@ -1,26 +1,40 @@
-{ aspell, audiofile
-, gsmakeDerivation
+{ lib
+, stdenv
+, aspell
+, audiofile
+, make
+, wrapGNUstepAppsHook
 , cups
 , fetchzip
 , fetchpatch
-, gmp, gnutls
-, libffi, binutils-unwrapped
-, libjpeg, libtiff, libpng, giflib
-, libxml2, libxslt, libiconv
-, libobjc, libgcrypt
+, gmp
+, gnutls
+, libffi
+, binutils-unwrapped
+, libjpeg
+, libtiff
+, libpng
+, giflib
+, libxml2
+, libxslt
+, libiconv
+, libobjc
+, libgcrypt
 , icu
-, pkg-config, portaudio
+, pkg-config
+, portaudio
 , libiberty
 }:
-gsmakeDerivation rec {
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnustep-base";
   version = "1.29.0";
   src = fetchzip {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-${finalAttrs.version}.tar.gz";
     hash = "sha256-4fjdsLBsYEDxLOFrq17dKii2sLKvOaFCu0cw3qQtM5U=";
   };
   outputs = [ "out" "dev" "lib" ];
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config make wrapGNUstepAppsHook ];
   propagatedBuildInputs = [
     aspell audiofile
     cups
@@ -55,7 +69,11 @@ gsmakeDerivation rec {
   ];
 
   meta = {
+    changelog = "https://github.com/gnustep/libs-base/releases/tag/base-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
     description = "An implementation of AppKit and Foundation libraries of OPENSTEP and Cocoa";
-    changelog = "https://github.com/gnustep/libs-base/releases/tag/base-${builtins.replaceStrings [ "." ] [ "_" ] version}";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnustep/default.nix b/pkgs/desktops/gnustep/default.nix
index d337512dceca..53040ace672d 100644
--- a/pkgs/desktops/gnustep/default.nix
+++ b/pkgs/desktops/gnustep/default.nix
@@ -5,18 +5,21 @@
 let
   callPackage = newScope self;
 
-  self = rec {
+  self = {
     stdenv = llvmPackages.stdenv;
 
-    gsmakeDerivation = callPackage ./make/gsmakeDerivation.nix {};
-    gorm = callPackage ./gorm {};
-    projectcenter = callPackage ./projectcenter {};
-    system_preferences = callPackage ./systempreferences {};
-    libobjc = callPackage ./libobjc2 {};
+    wrapGNUstepAppsHook = callPackage ./wrapGNUstepAppsHook.nix {};
+
     make = callPackage ./make {};
+
+    libobjc = callPackage ./libobjc2 {};
+    base = callPackage ./base {};
     back = callPackage ./back {};
-    base = callPackage ./base { };
     gui = callPackage ./gui {};
+
+    gorm = callPackage ./gorm {};
+    projectcenter = callPackage ./projectcenter {};
+    system_preferences = callPackage ./systempreferences {};
     gworkspace = callPackage ./gworkspace {};
   };
 
diff --git a/pkgs/desktops/gnustep/gorm/default.nix b/pkgs/desktops/gnustep/gorm/default.nix
index 0897ceefdba6..f48600263447 100644
--- a/pkgs/desktops/gnustep/gorm/default.nix
+++ b/pkgs/desktops/gnustep/gorm/default.nix
@@ -1,15 +1,31 @@
-{ fetchzip, base, back, gsmakeDerivation, gui }:
-gsmakeDerivation rec {
+{ lib
+, stdenv
+, fetchzip
+, base
+, back
+, make
+, wrapGNUstepAppsHook
+, gui
+}:
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "gorm";
   version = "1.3.1";
 
   src = fetchzip {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${finalAttrs.version}.tar.gz";
     sha256 = "sha256-W+NgbvLjt1PpDiauhzWFaU1/CUhmDACQz+GoyRUyWB8=";
   };
+
+  nativeBuildInputs = [ make wrapGNUstepAppsHook ];
   buildInputs = [ base back gui ];
 
   meta = {
     description = "Graphical Object Relationship Modeller is an easy-to-use interface designer for GNUstep";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    mainProgram = "Gorm";
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnustep/gui/default.nix b/pkgs/desktops/gnustep/gui/default.nix
index 962d6eef7fde..448f4c60136a 100644
--- a/pkgs/desktops/gnustep/gui/default.nix
+++ b/pkgs/desktops/gnustep/gui/default.nix
@@ -1,19 +1,32 @@
-{ gsmakeDerivation, fetchzip, base }:
+{ lib
+, stdenv
+, make
+, wrapGNUstepAppsHook
+, fetchzip
+, base
+}:
 
-gsmakeDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   version = "0.30.0";
   pname = "gnustep-gui";
 
   src = fetchzip {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-${finalAttrs.version}.tar.gz";
     sha256 = "sha256-24hL4TeIY6izlhQUcxKI0nXITysAPfRrncRqsDm2zNk=";
   };
+
+  nativeBuildInputs = [ make wrapGNUstepAppsHook ];
   buildInputs = [ base ];
+
   patches = [
     ./fixup-all.patch
   ];
   meta = {
+    changelog = "https://github.com/gnustep/libs-gui/releases/tag/gui-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
     description = "A GUI class library of GNUstep";
-    changelog = "https://github.com/gnustep/libs-gui/releases/tag/gui-${builtins.replaceStrings [ "." ] [ "_" ] version}";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnustep/gworkspace/default.nix b/pkgs/desktops/gnustep/gworkspace/default.nix
index cdc6612d1c06..d2343dfb0113 100644
--- a/pkgs/desktops/gnustep/gworkspace/default.nix
+++ b/pkgs/desktops/gnustep/gworkspace/default.nix
@@ -1,22 +1,36 @@
-{ back, base, gui, gsmakeDerivation
+{ lib
+, stdenv
+, back
+, base
+, gui
+, make
+, wrapGNUstepAppsHook
 , fetchurl
 , system_preferences
 }:
-let
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "gworkspace";
   version = "1.0.0";
-in
-gsmakeDerivation {
-  name = "gworkspace-${version}";
+
   src = fetchurl {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/gworkspace-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/gworkspace-${finalAttrs.version}.tar.gz";
     sha256 = "sha256-M7dV7RVatw8gdYHQlRi5wNBd6MGT9GqW04R/DoKNu6I=";
   };
+
   # additional dependencies:
   # - PDFKit framework from http://gap.nongnu.org/
   # - TODO: to --enable-gwmetadata, need libDBKit as well as sqlite!
+  nativeBuildInputs = [ make wrapGNUstepAppsHook ];
   buildInputs = [ back base gui system_preferences ];
   configureFlags = [ "--with-inotify" ];
+
   meta = {
     description = "A workspace manager for GNUstep";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    mainProgram = "GWorkspace";
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnustep/libobjc2/default.nix b/pkgs/desktops/gnustep/libobjc2/default.nix
index b44e60ce233d..2e487fddf431 100644
--- a/pkgs/desktops/gnustep/libobjc2/default.nix
+++ b/pkgs/desktops/gnustep/libobjc2/default.nix
@@ -1,13 +1,17 @@
-{ stdenv, lib, fetchFromGitHub, cmake }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libobjc2";
   version = "2.1";
 
   src = fetchFromGitHub {
     owner = "gnustep";
     repo = "libobjc2";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-iDOVEDnTAfg9r3/kdHp7hzX2oIjO1ovaqgrlIV7V68M=";
     fetchSubmodules = true;
   };
@@ -19,9 +23,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Objective-C runtime for use with GNUstep";
-    homepage = "http://gnustep.org/";
+    homepage = "https://gnustep.github.io/";
     license = licenses.mit;
-    maintainers = with maintainers; [ ashalkhakov matthewbauer ];
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/desktops/gnustep/make/builder.sh b/pkgs/desktops/gnustep/make/builder.sh
deleted file mode 100644
index 79ead3f7b729..000000000000
--- a/pkgs/desktops/gnustep/make/builder.sh
+++ /dev/null
@@ -1,127 +0,0 @@
-if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
-source $stdenv/setup
-
-providedPreConfigure="$preConfigure";
-
-preConfigure() {
-    eval "$providedPreConfigure"
-
-    . $GNUSTEP_MAKEFILES/GNUstep.sh
-}
-
-wrapGSMake() {
-    local program="$1"
-    local config="$2"
-    local wrapped="$(dirname $program)/.$(basename $program)-wrapped"
-
-    mv "$program" "$wrapped"
-
-    cat > "$program"<<EOF
-#! $SHELL -e
-
-export GNUSTEP_CONFIG_FILE="$config"
-
-exec "$wrapped" "\$@"
-EOF
-    chmod +x "$program"
-}
-
-postInstall() {
-    local conf="$out/share/.GNUstep.conf"
-
-    mkdir -p "$out/share"
-    touch $conf
-
-    # add the current package to the paths
-    local tmp="$out/lib/GNUstep/Applications"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_APPS" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
-    fi
-    tmp="$out/lib/GNUstep/Applications"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
-    fi
-    tmp="$out/lib/GNUstep/WebApplications"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_WEB_APPS" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
-    fi
-    tmp="$out/bin"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
-    fi
-    tmp="$out/sbin"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
-    fi
-    tmp="$out/lib/GNUstep"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARY" in *"${tmp}"*) false;; *) true;; esac; then
-            addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
-    fi
-    tmp="$out/include"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_HEADERS" in *"${tmp}"*) false;; *) true;; esac; then
-            if [ -z "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
-                export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
-            else
-                export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
-            fi
-    fi
-    tmp="$out/lib"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARIES" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
-    fi
-    tmp="$out/share/GNUstep/Documentation"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
-    fi
-    tmp="$out/share/man"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_MAN" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
-    fi
-    tmp="$out/share/info"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_INFO" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
-    fi
-
-    # write the config file
-    echo GNUSTEP_MAKEFILES=$GNUSTEP_MAKEFILES >> $conf
-    if [ -n "$NIX_GNUSTEP_SYSTEM_APPS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_APPS="$NIX_GNUSTEP_SYSTEM_APPS"
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_ADMIN_APPS="$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_WEB_APPS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_WEB_APPS="$NIX_GNUSTEP_SYSTEM_WEB_APPS" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_TOOLS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_TOOLS="$NIX_GNUSTEP_SYSTEM_TOOLS" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS="$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARY" ]; then
-        echo NIX_GNUSTEP_SYSTEM_LIBRARY="$NIX_GNUSTEP_SYSTEM_LIBRARY" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_HEADERS="$NIX_GNUSTEP_SYSTEM_HEADERS" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARIES" ]; then
-        echo NIX_GNUSTEP_SYSTEM_LIBRARIES="$NIX_GNUSTEP_SYSTEM_LIBRARIES" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_DOC" ]; then
-        echo NIX_GNUSTEP_SYSTEM_DOC="$NIX_GNUSTEP_SYSTEM_DOC" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_MAN" ]; then
-        echo NIX_GNUSTEP_SYSTEM_DOC_MAN="$NIX_GNUSTEP_SYSTEM_DOC_MAN" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_INFO" ]; then
-        echo NIX_GNUSTEP_SYSTEM_DOC_INFO="$NIX_GNUSTEP_SYSTEM_DOC_INFO" >> $conf
-    fi
-
-    for i in $out/bin/*; do
-        echo "wrapping $(basename $i)"
-        wrapGSMake "$i" "$out/share/.GNUstep.conf"
-    done
-}
-
-genericBuild
diff --git a/pkgs/desktops/gnustep/make/default.nix b/pkgs/desktops/gnustep/make/default.nix
index f9b4ae553c85..290e3004497f 100644
--- a/pkgs/desktops/gnustep/make/default.nix
+++ b/pkgs/desktops/gnustep/make/default.nix
@@ -1,11 +1,16 @@
-{ lib, stdenv, fetchurl, clang, which, libobjc }:
+{ lib
+, stdenv
+, fetchurl
+, which
+, libobjc
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnustep-make";
   version = "2.9.1";
 
   src = fetchurl {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${finalAttrs.version}.tar.gz";
     sha256 = "sha256-w9bnDPFWsn59HtJQHFffP5bidIjOLzUbk+R5xYwB6uc=";
   };
 
@@ -22,17 +27,19 @@ stdenv.mkDerivation rec {
     "GNUSTEP_INSTALLATION_DOMAIN=SYSTEM"
   ];
 
-  nativeBuildInputs = [ clang which ];
   buildInputs = [ libobjc ];
 
+  propagatedBuildInputs = [ which ];
+
   patches = [ ./fixup-paths.patch ];
   setupHook = ./setup-hook.sh;
+
   meta = {
+    changelog = "https://github.com/gnustep/tools-make/releases/tag/make-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
     description = "A build manager for GNUstep";
-    homepage = "http://gnustep.org/";
-    changelog = "https://github.com/gnustep/tools-make/releases/tag/make-${builtins.replaceStrings [ "." ] [ "_" ] version}";
+    homepage = "https://gnustep.github.io/";
     license = lib.licenses.lgpl2Plus;
-    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer ];
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
     platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/pkgs/desktops/gnustep/make/gsmakeDerivation.nix b/pkgs/desktops/gnustep/make/gsmakeDerivation.nix
deleted file mode 100644
index 04cfcc1ca343..000000000000
--- a/pkgs/desktops/gnustep/make/gsmakeDerivation.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ lib, stdenv, make, makeWrapper, which }:
-{ nativeBuildInputs ? [], ...} @ args:
-stdenv.mkDerivation (args // {
-  nativeBuildInputs = [ makeWrapper make which ] ++ nativeBuildInputs;
-
-  builder = ./builder.sh;
-  setupHook = ./setup-hook.sh;
-
-  GNUSTEP_MAKEFILES = "${make}/share/GNUstep/Makefiles";
-
-  meta = {
-    homepage = "http://gnustep.org/";
-
-    license = lib.licenses.lgpl2Plus;
-
-    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer ];
-    platforms = lib.platforms.linux;
-  } // (lib.optionalAttrs (builtins.hasAttr "meta" args) args.meta);
-})
diff --git a/pkgs/desktops/gnustep/make/setup-hook.sh b/pkgs/desktops/gnustep/make/setup-hook.sh
index 83adfefc10cd..0bfbd35f45f5 100644
--- a/pkgs/desktops/gnustep/make/setup-hook.sh
+++ b/pkgs/desktops/gnustep/make/setup-hook.sh
@@ -20,62 +20,52 @@ addGnustepInstallFlags() {
 
 preInstallPhases+=" addGnustepInstallFlags"
 
-addEnvVars() {
+addGNUstepEnvVars() {
     local filename
 
+    gsAddToSearchPath() {
+        if [[ -d "$2" && "${!1-}" != *"$2"* ]]; then
+            addToSearchPath "$1" "$2"
+        fi
+    }
+
+    gsAddToIncludeSearchPath() {
+        local -n ref="$1"
+
+        # NOTE: contrary to the one in wrapGNUstepAppsHook, use -e here instead of -d since it's also used for the makefiles
+        if [[ -e "$2" && "${ref-}" != *"$2"* ]]; then
+            if [[ "${ref-}" != "" ]]; then
+                ref+=" "
+            fi
+
+            ref+="$2"
+        fi
+    }
+
     for filename in $1/share/GNUstep/Makefiles/Additional/*.make ; do
-    if case "${NIX_GNUSTEP_MAKEFILES_ADDITIONAL-}" in *"{$filename}"*) false;; *) true;; esac; then
-        export NIX_GNUSTEP_MAKEFILES_ADDITIONAL+=" $filename"
-    fi
+        gsAddToIncludeSearchPath NIX_GNUSTEP_MAKEFILES_ADDITIONAL "$filename"
     done
 
-    local tmp="$1/lib/GNUstep/Applications"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
-    fi
-    tmp="$1/lib/GNUstep/Applications"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
-    fi
-    tmp="$1/lib/GNUstep/WebApplications"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_WEB_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
-    fi
-    tmp="$1/bin"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
-    fi
-    tmp="$1/sbin"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
-    fi
-    tmp="$1/lib/GNUstep"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARY-}" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
-    fi
-    tmp="$1/include"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_HEADERS-}" in *"${tmp}"*) false;; *) true;; esac; then
-        if [ -z "${NIX_GNUSTEP_SYSTEM_HEADERS-}" ]; then
-            export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
-        else
-            export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
-        fi
-    fi
-    tmp="$1/lib"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARIES-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
-    fi
-    tmp="$1/share/GNUstep/Documentation"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
-    fi
-    tmp="$1/share/man"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_MAN-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
-    fi
-    tmp="$1/share/info"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_INFO-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
-    fi
+    export NIX_GNUSTEP_MAKEFILES_ADDITIONAL
+
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$1/lib/GNUstep/Applications"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$1/lib/GNUstep/Applications"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$1/lib/GNUstep/WebApplications"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$1/bin"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$1/sbin"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$1/lib/GNUstep"
+    gsAddToIncludeSearchPath NIX_GNUSTEP_SYSTEM_HEADERS "$1/include"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$1/lib"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$1/share/GNUstep/Documentation"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$1/share/man"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$1/share/info"
+}
+addEnvHooks "$targetOffset" addGNUstepEnvVars
+
+gsmakeSetup() {
+    export GNUSTEP_MAKEFILES="$(gnustep-config --variable=GNUSTEP_MAKEFILES)"
+
+    . $GNUSTEP_MAKEFILES/GNUstep.sh
 }
-addEnvHooks "$targetOffset" addEnvVars
+
+preConfigureHooks+=(gsmakeSetup)
diff --git a/pkgs/desktops/gnustep/make/wrapper.sh b/pkgs/desktops/gnustep/make/wrapper.sh
deleted file mode 100644
index 1bc2e130d88d..000000000000
--- a/pkgs/desktops/gnustep/make/wrapper.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-. $GNUSTEP_MAKEFILES/GNUstep.sh
-$1
diff --git a/pkgs/desktops/gnustep/projectcenter/default.nix b/pkgs/desktops/gnustep/projectcenter/default.nix
index b535365b25d9..89f2e769a066 100644
--- a/pkgs/desktops/gnustep/projectcenter/default.nix
+++ b/pkgs/desktops/gnustep/projectcenter/default.nix
@@ -1,21 +1,29 @@
-{ lib, fetchFromGitHub
-, base, back, gsmakeDerivation, gui, gorm
-, gnumake, gdb
+{ lib
+, stdenv
+, fetchFromGitHub
+, make
+, wrapGNUstepAppsHook
+, base
+, back
+, gui
+, gorm
+, gnumake
+, gdb
 }:
-let
-  version = "0.7.0";
-in
-gsmakeDerivation {
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "projectcenter";
-  inherit version;
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "gnustep";
     repo = "apps-projectcenter";
-    rev = "projectcenter-${lib.replaceStrings [ "." ] [ "_" ] version}";
+    rev = "projectcenter-${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
     hash = "sha256-uXT2UUvMZNc6Fqi2BUXQimbZk8b3IqXzB+A2btBOmms=";
   };
 
+  nativeBuildInputs = [ make wrapGNUstepAppsHook ];
+
   # NOTE: need a patch for ProjectCenter to help it locate some necessary tools:
   # 1. Framework/PCProjectLauncher.m, locate gdb (say among NIX_GNUSTEP_SYSTEM_TOOLS)
   # 2. Framework/PCProjectBuilder.m, locate gmake (similar)
@@ -23,5 +31,10 @@ gsmakeDerivation {
 
   meta = {
     description = "GNUstep's integrated development environment";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    mainProgram = "ProjectCenter";
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnustep/systempreferences/default.nix b/pkgs/desktops/gnustep/systempreferences/default.nix
index 096520f08f36..c08ad0fc8dbc 100644
--- a/pkgs/desktops/gnustep/systempreferences/default.nix
+++ b/pkgs/desktops/gnustep/systempreferences/default.nix
@@ -1,17 +1,31 @@
-{ back, base, gui, gsmakeDerivation, fetchurl }:
-let
+{ lib
+, stdenv
+, fetchurl
+, make
+, wrapGNUstepAppsHook
+, back
+, base
+, gui
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "system-preferences";
   version = "1.2.0";
-in
-gsmakeDerivation {
-  name = "system_preferences-${version}";
+
   src = fetchurl {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/SystemPreferences-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/SystemPreferences-${finalAttrs.version}.tar.gz";
     sha256 = "1fg7c3ihfgvl6n21rd17fs9ivx3l8ps874m80vz86n1callgs339";
   };
-#  GNUSTEP_MAKEFILES = "${gnustep_make}/share/GNUstep/Makefiles";
+
+  nativeBuildInputs = [ make wrapGNUstepAppsHook ];
   buildInputs = [ back base gui ];
-#  propagatedBuildInputs = [ gnustep_back gnustep_base gnustep_gui ];
+
   meta = {
     description = "The settings manager for the GNUstep environment and its applications";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    mainProgram = "SystemPreferences";
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix b/pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix
new file mode 100644
index 000000000000..8a2339ddeb52
--- /dev/null
+++ b/pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix
@@ -0,0 +1,8 @@
+{makeBinaryWrapper, makeSetupHook}:
+
+makeSetupHook
+  {
+    name = "wrapGNUstepAppsHook";
+    propagatedBuildInputs = [makeBinaryWrapper];
+  }
+  ./wrapGNUstepAppsHook.sh
diff --git a/pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh b/pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh
new file mode 100644
index 000000000000..8218ff1e7746
--- /dev/null
+++ b/pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh
@@ -0,0 +1,96 @@
+if [[ -z "${__nix_wrapGNUstepAppsHook-}" ]]; then
+    __nix_wrapGNUstepAppsHook=1 # Don't run this hook more than once.
+
+    # Inherit arguments given in mkDerivation
+    gnustepWrapperArgs=(${gnustepWrapperArgs-})
+
+    gnustepConfigVars+=(
+        GNUSTEP_MAKEFILES
+        NIX_GNUSTEP_SYSTEM_APPS
+        NIX_GNUSTEP_SYSTEM_ADMIN_APPS
+        NIX_GNUSTEP_SYSTEM_WEB_APPS
+        NIX_GNUSTEP_SYSTEM_TOOLS
+        NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS
+        NIX_GNUSTEP_SYSTEM_LIBRARY
+        NIX_GNUSTEP_SYSTEM_HEADERS
+        NIX_GNUSTEP_SYSTEM_LIBRARIES
+        NIX_GNUSTEP_SYSTEM_DOC
+        NIX_GNUSTEP_SYSTEM_DOC_MAN
+        NIX_GNUSTEP_SYSTEM_DOC_INFO
+    )
+
+    wrapGNUstepApp() {
+        wrapProgram "$1" \
+            --set GNUSTEP_CONFIG_FILE "$out/GNUstep.conf" \
+            "${gnustepWrapperArgs[@]}"
+    }
+
+    ensureGNUstepConfig() (
+        if [[ -f "$out/GNUstep.conf" ]]; then
+            return
+        fi
+
+        echo "writing GNUstep config file"
+
+        gsAddToSearchPath() {
+            if [[ -d "$2" && "${!1-}" != *"$2"* ]]; then
+                addToSearchPath "$1" "$2"
+            fi
+        }
+
+        gsAddToIncludeSearchPath() {
+            local -n ref="$1"
+
+            if [[ -d "$2" && "${ref-}" != *"$2"* ]]; then
+                if [[ "${ref-}" != "" ]]; then
+                    ref+=" "
+                fi
+
+                ref+="$2"
+            fi
+        }
+
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$out/lib/GNUstep/Applications"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$out/lib/GNUstep/Applications"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$out/lib/GNUstep/WebApplications"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$out/bin"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$out/sbin"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$out/lib/GNUstep"
+        gsAddToIncludeSearchPath NIX_GNUSTEP_SYSTEM_HEADERS "$out/include"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$out/lib"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$out/share/GNUstep/Documentation"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$out/share/man"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$out/share/info"
+
+        for var in "${gnustepConfigVars[@]}"; do
+            if [[ -n "${!var-}" ]]; then
+                printf '%s="%s"\n' "$var" "${!var}"
+            fi
+        done > "$out/GNUstep.conf"
+    )
+
+    # Note: $gnustepWrapperArgs still gets defined even if ${dontWrapGNUstepApps-} is set.
+    wrapGNUstepAppsHook() {
+        # skip this hook when requested
+        [[ -z "${dontWrapGNUstepApps-}" ]] || return 0
+
+        # guard against running multiple times (e.g. due to propagation)
+        [[ -z "$wrapGNUstepAppsHookHasRun" ]] || return 0
+        wrapGNUstepAppsHookHasRun=1
+
+        local targetDirs=("$prefix/bin")
+        echo "wrapping GNUstep applications in ${targetDirs[@]}"
+
+        for targetDir in "${targetDirs[@]}"; do
+            [[ -d "$targetDir" ]] || continue
+
+            while IFS= read -r -d '' file; do
+                ensureGNUstepConfig
+                echo "wrapping $file"
+                wrapGNUstepApp "$file"
+            done < <(find "$targetDir" ! -type d -executable -print0)
+        done
+    }
+
+    fixupOutputHooks+=(wrapGNUstepAppsHook)
+fi
diff --git a/pkgs/development/compilers/idris2/idris2-lsp.nix b/pkgs/development/compilers/idris2/idris2-lsp.nix
index d73f2d70d6d0..a9587588417a 100644
--- a/pkgs/development/compilers/idris2/idris2-lsp.nix
+++ b/pkgs/development/compilers/idris2/idris2-lsp.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, idris2Packages, makeWrapper }:
+{ lib, fetchFromGitHub, idris2Packages, makeWrapper }:
 
 let
   globalLibraries = let
@@ -40,5 +40,12 @@ let
       wrapProgram $out/bin/idris2-lsp \
         --suffix IDRIS2_PACKAGE_PATH ':' "${globalLibrariesPath}"
     '';
+
+    meta = with lib; {
+      description = "Language Server for Idris2";
+      homepage = "https://github.com/idris-community/idris2-lsp";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ mattpolzin ];
+    };
   };
 in lspPkg.executable
diff --git a/pkgs/development/compilers/rust/make-rust-platform.nix b/pkgs/development/compilers/rust/make-rust-platform.nix
index e22cb6d594af..6ed724aae821 100644
--- a/pkgs/development/compilers/rust/make-rust-platform.nix
+++ b/pkgs/development/compilers/rust/make-rust-platform.nix
@@ -1,4 +1,4 @@
-{ lib, buildPackages, callPackage, cargo-auditable, stdenv, runCommand }@prev:
+{ lib, buildPackages, callPackage, callPackages, cargo-auditable, stdenv, runCommand }@prev:
 
 { rustc
 , cargo
@@ -34,7 +34,7 @@ rec {
   };
 
   # Hooks
-  inherit (callPackage ../../../build-support/rust/hooks {
+  inherit (callPackages ../../../build-support/rust/hooks {
     inherit stdenv cargo rustc;
   }) cargoBuildHook cargoCheckHook cargoInstallHook cargoNextestHook cargoSetupHook maturinBuildHook bindgenHook;
 }
diff --git a/pkgs/development/ocaml-modules/cry/default.nix b/pkgs/development/ocaml-modules/cry/default.nix
index 8e475a7987cc..e4339ef7563b 100644
--- a/pkgs/development/ocaml-modules/cry/default.nix
+++ b/pkgs/development/ocaml-modules/cry/default.nix
@@ -2,17 +2,17 @@
 
 buildDunePackage rec {
   pname = "cry";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "savonet";
     repo = "ocaml-cry";
     rev = "v${version}";
-    sha256 = "sha256-wn9hLqbydzFTdYsJ1e76dmDLtwcZ7CGjbzFe5o9veYQ=";
+    hash = "sha256-wtilYOUOHElW8ZVxolMNomvT//ho2tACmoubEvU2bpQ=";
   };
 
   postPatch = ''
-    substituteInPlace src/dune --replace bytes ""
+    substituteInPlace src/dune --replace-warn bytes ""
   '';
 
   minimalOCamlVersion = "4.12";
diff --git a/pkgs/development/ocaml-modules/eio/default.nix b/pkgs/development/ocaml-modules/eio/default.nix
index dcffdd7dbe48..0eafead13cf1 100644
--- a/pkgs/development/ocaml-modules/eio/default.nix
+++ b/pkgs/development/ocaml-modules/eio/default.nix
@@ -1,6 +1,6 @@
 { lib
 , ocaml
-, version ? if lib.versionAtLeast ocaml.version "5.1" then "0.15" else "0.12"
+, version ? if lib.versionAtLeast ocaml.version "5.1" then "1.0" else "0.12"
 , buildDunePackage
 , bigstringaf
 , cstruct
@@ -24,9 +24,9 @@ let
       minimalOCamlVersion = "5.0";
       hash = "sha256-2EhHzoX/t4ZBSWrSS+PGq1zCxohc7a1q4lfsrFnZJqA=";
     };
-    "0.15" = {
+    "1.0" = {
       minimalOCamlVersion = "5.1";
-      hash = "sha256-gH7O8zfdqEmwXT29F6ko5vXGNudusV4iE2Z8kRJ3GKc=";
+      hash = "sha256-2iYNnaOLPd6fMWZSogsTomHPkLhaJJisZpt9Vk5hlC0=";
     };
   }."${version}";
 in
diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix
index d1c0462c4dca..48b9a153f5b3 100644
--- a/pkgs/development/ocaml-modules/eliom/default.nix
+++ b/pkgs/development/ocaml-modules/eliom/default.nix
@@ -17,13 +17,13 @@
 
 buildDunePackage rec {
   pname = "eliom";
-  version = "10.1.2";
+  version = "10.3.1";
 
   src = fetchFromGitHub {
     owner = "ocsigen";
     repo = "eliom";
     rev = version;
-    hash = "sha256-Cxwp534ADUO7AHnxZnGsrqxGDkhcJ314M5wytO4e8/0=";
+    hash = "sha256-REOyxwnQqWOKywVYwN/WP22cNKZv5Nv0OpFVbNBPJN8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/php-packages/castor/default.nix b/pkgs/development/php-packages/castor/default.nix
index 241980e93d6f..1b6b3f6be9d4 100644
--- a/pkgs/development/php-packages/castor/default.nix
+++ b/pkgs/development/php-packages/castor/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , installShellFiles
 , php
 , nix-update-script
@@ -8,16 +9,25 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "castor";
-  version = "0.13.1";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "jolicode";
     repo = "castor";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-Sm6I306iKVr66sBp+ADeTZAKGToVMc+Y/BCymUdszNc=";
+    hash = "sha256-sSIkXNW6RR1mx15dKouQLMaHBr5FEkTTc/0QIkWV8sg=";
   };
 
-  vendorHash = "sha256-KbmovAnejShyVclF4IcZ9ckUOWysfEz3DFqE8OxlzI0=";
+  patches = [
+    # Upstream lock is invalid. https://github.com/jolicode/castor/issues/319
+    (fetchpatch {
+      name = "fix-invalid-lock.patch";
+      url = "https://github.com/jolicode/castor/commit/5ff0c3ecbdddad20146adbc2f055b83f5aadba0f.patch";
+      hash = "sha256-1a3Dpk/UXp92Ugw9zSoLPsbWOJEuP2FBWc/pQ/EKwaM=";
+    })
+  ];
+
+  vendorHash = "sha256-HfEjwlkozeuT4LDnYwiCu7T0spcf4GLhkd7Kc1VRnro=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/php-packages/phpstan/default.nix b/pkgs/development/php-packages/phpstan/default.nix
index 63ced11f2351..8a094ce425cd 100644
--- a/pkgs/development/php-packages/phpstan/default.nix
+++ b/pkgs/development/php-packages/phpstan/default.nix
@@ -2,16 +2,16 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "phpstan";
-  version = "1.10.59";
+  version = "1.10.60";
 
   src = fetchFromGitHub {
     owner = "phpstan";
     repo = "phpstan-src";
     rev = finalAttrs.version;
-    hash = "sha256-2+CQtpmh2r2+87zLhx7UkYlZ7sDQdDh4S8v67PGNjLM=";
+    hash = "sha256-DKrlR3ujHWfbhPMzZhhkUCeTtKW6hpGUe4z7xgzJ4qs=";
   };
 
-  vendorHash = "sha256-6Wea4iUSFq0xSWFq4er4lzFn2mgeoYBXG1zMGM3Y390=";
+  vendorHash = "sha256-8CEg1q3K1E9M6gaa5IlSYNPZb+evaY1oxbCnySXuFGE=";
   composerStrictValidation = false;
 
   meta = {
diff --git a/pkgs/development/python-modules/axis/default.nix b/pkgs/development/python-modules/axis/default.nix
index 75c1d98b6f83..1d77c3409c94 100644
--- a/pkgs/development/python-modules/axis/default.nix
+++ b/pkgs/development/python-modules/axis/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "axis";
-  version = "52";
+  version = "53";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Kane610";
     repo = "axis";
     rev = "refs/tags/v${version}";
-    hash = "sha256-L94q3NxnkhYPIiz6p+o071QK2h4u9kSm+EUKdi93JzA=";
+    hash = "sha256-M5uaRiZP66RApSztvgzzpAUBKCcSCqC6fxzmB52mibY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/mitmproxy/default.nix b/pkgs/development/python-modules/mitmproxy/default.nix
index 64b6602e04ec..860900902794 100644
--- a/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/pkgs/development/python-modules/mitmproxy/default.nix
@@ -45,7 +45,7 @@
 
 buildPythonPackage rec {
   pname = "mitmproxy";
-  version = "10.2.3";
+  version = "10.2.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -54,7 +54,7 @@ buildPythonPackage rec {
     owner = "mitmproxy";
     repo = "mitmproxy";
     rev = "refs/tags/${version}";
-    hash = "sha256-hlZ5d4J3SDQp80C8lhwZkms/rc0uj8LslRmBqB5eIEw=";
+    hash = "sha256-6TPhxprrP6Bgc1yAhN3pBdr98WpvfGnVNvkNtFxROgE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pypinyin/default.nix b/pkgs/development/python-modules/pypinyin/default.nix
index f42315c33198..a109612fd75e 100644
--- a/pkgs/development/python-modules/pypinyin/default.nix
+++ b/pkgs/development/python-modules/pypinyin/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pypinyin";
-  version = "0.50.0";
+  version = "0.51.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "mozillazg";
     repo = "python-pinyin";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9RnuC9AvTlUtZqep6kn5y1xQcq/dzA9jTZXAsMpKZWc=";
+    hash = "sha256-kbUVif3a3L7BHj1b37FME5wicalK/iild0pvwPawr6Q=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix b/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix
new file mode 100644
index 000000000000..dd95baba855d
--- /dev/null
+++ b/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, requests
+, paho-mqtt
+, cryptography
+}:
+let
+  pname = "tuya-device-sharing-sdk";
+  version = "0.2.0";
+in
+buildPythonPackage {
+  inherit pname version;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-fu8zh59wlnxtstNbNL8mIm10tiXy22oPbi6oUy5x8c8=";
+  };
+
+  # workaround needed, upstream issue: https://github.com/tuya/tuya-device-sharing-sdk/issues/10
+  postPatch = ''
+    touch requirements.txt
+  '';
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    requests
+    paho-mqtt
+    cryptography
+  ];
+
+  doCheck = false; # no tests
+
+  meta = with lib; {
+    description = "Tuya Device Sharing SDK";
+    homepage = "https://github.com/tuya/tuya-device-sharing-sdk";
+    license = licenses.mit;
+    maintainers = with maintainers; [ aciceri ];
+  };
+}
diff --git a/pkgs/development/python-modules/xiaomi-ble/default.nix b/pkgs/development/python-modules/xiaomi-ble/default.nix
index 18de691f5398..8264a5b9fb17 100644
--- a/pkgs/development/python-modules/xiaomi-ble/default.nix
+++ b/pkgs/development/python-modules/xiaomi-ble/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "xiaomi-ble";
-  version = "0.26.1";
+  version = "0.27.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = "xiaomi-ble";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ENs+n8YgOSQpN+UpYU6CI1McWPyh8hKKMUjPDUYRWjI=";
+    hash = "sha256-D1LqIdnusCs7vzVCPnbhXqRER/+uPKWoVsfeGe2M6b8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 2082dff7a3a5..c51494b4428f 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -541,6 +541,7 @@ let
     bayesWatch = [ pkgs.boost.dev ];
     clustermq = [  pkgs.pkg-config ];
     coga = [ pkgs.gsl.dev ];
+    gpg = [ pkgs.gpgme ];
     webp = [ pkgs.libwebp ];
     RMark = [ pkgs.which ];
     RPushbullet = [ pkgs.which ];
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch b/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch
deleted file mode 100644
index 1fa1e5748333..000000000000
--- a/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
-index 6fff2af..7e2877e 100644
---- a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
-+++ b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
-@@ -47,6 +47,16 @@ public final class PosixLocalEnvProvider implements LocalEnvProvider {
-       Map<String, String> env, BinTools binTools, String fallbackTmpDir) {
-     ImmutableMap.Builder<String, String> result = ImmutableMap.builder();
-     result.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
-+
-+    // In case we are running on NixOS.
-+    // If bash is called with an unset PATH on this platform,
-+    // it will set it to /no-such-path and default tools will be missings.
-+    // See, https://github.com/NixOS/nixpkgs/issues/94222
-+    // So we ensure that minimal dependencies are present.
-+    if (!env.containsKey("PATH")){
-+        result.put("PATH", "@actionsPathPatch@");
-+    }
-+ 
-     String p = clientEnv.get("TMPDIR");
-     if (Strings.isNullOrEmpty(p)) {
-       // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
-index 95642767c6..39d3c62461 100644
---- a/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
-+++ b/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
-@@ -74,6 +74,16 @@ public final class XcodeLocalEnvProvider implements LocalEnvProvider {
-
-     ImmutableMap.Builder<String, String> newEnvBuilder = ImmutableMap.builder();
-     newEnvBuilder.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
-+
-+    // In case we are running on NixOS.
-+    // If bash is called with an unset PATH on this platform,
-+    // it will set it to /no-such-path and default tools will be missings.
-+    // See, https://github.com/NixOS/nixpkgs/issues/94222
-+    // So we ensure that minimal dependencies are present.
-+    if (!env.containsKey("PATH")){
-+      newEnvBuilder.put("PATH", "@actionsPathPatch@");
-+    }
-+
-     String p = clientEnv.get("TMPDIR");
-     if (Strings.isNullOrEmpty(p)) {
-       // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
deleted file mode 100644
index f4fee72f6bf3..000000000000
--- a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
+++ /dev/null
@@ -1,662 +0,0 @@
-{ stdenv, callPackage, lib, fetchurl, fetchpatch, fetchFromGitHub, installShellFiles
-, runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
-# this package (through the fixpoint glass)
-, bazel_self
-, lr, xe, zip, unzip, bash, writeCBin, coreutils
-, which, gawk, gnused, gnutar, gnugrep, gzip, findutils
-# updater
-, python3, writeScript
-# Apple dependencies
-, cctools, libcxx, CoreFoundation, CoreServices, Foundation
-# Allow to independently override the jdks used to build and run respectively
-, buildJdk, runJdk
-, buildJdkName
-, runtimeShell
-# Always assume all markers valid (this is needed because we remove markers; they are non-deterministic).
-# Also, don't clean up environment variables (so that NIX_ environment variables are passed to compilers).
-, enableNixHacks ? false
-, gcc-unwrapped
-, autoPatchelfHook
-, file
-, substituteAll
-, writeTextFile
-}:
-
-let
-  version = "4.2.2";
-  sourceRoot = ".";
-
-  src = fetchurl {
-    url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "mYHQ1To1bE6HlihHdQqXyegFTkYIVHSABsgPDX4rLTM=";
-  };
-
-  # Update with `eval $(nix-build -A bazel.updater)`,
-  # then add new dependencies from the dict in ./src-deps.json as required.
-  srcDeps = lib.attrsets.attrValues srcDepsSet;
-  srcDepsSet =
-    let
-      srcs = lib.importJSON ./src-deps.json;
-      toFetchurl = d: lib.attrsets.nameValuePair d.name (fetchurl {
-        urls = d.urls;
-        sha256 = d.sha256;
-        });
-        in builtins.listToAttrs (map toFetchurl [
-      srcs.desugar_jdk_libs
-      srcs.io_bazel_skydoc
-      srcs.bazel_skylib
-      srcs.io_bazel_rules_sass
-      srcs.platforms
-      (if stdenv.hostPlatform.isDarwin
-       then srcs."java_tools_javac11_darwin-v10.6.zip"
-       else srcs."java_tools_javac11_linux-v10.6.zip")
-      srcs."coverage_output_generator-v2.5.zip"
-      srcs.build_bazel_rules_nodejs
-      srcs."android_tools_pkg-0.23.0.tar.gz"
-      srcs.bazel_toolchains
-      srcs.com_github_grpc_grpc
-      srcs.upb
-      srcs.com_google_protobuf
-      srcs.rules_pkg
-      srcs.rules_cc
-      srcs.rules_java
-      srcs.rules_proto
-      srcs.com_google_absl
-      srcs.com_github_google_re2
-      srcs.com_github_cares_cares
-      ]);
-
-  distDir = runCommand "bazel-deps" {} ''
-    mkdir -p $out
-    for i in ${builtins.toString srcDeps}; do cp $i $out/$(stripHash $i); done
-  '';
-
-  defaultShellUtils =
-    # Keep this list conservative. For more exotic tools, prefer to use
-    # @rules_nixpkgs to pull in tools from the nix repository. Example:
-    #
-    # WORKSPACE:
-    #
-    #     nixpkgs_git_repository(
-    #         name = "nixpkgs",
-    #         revision = "def5124ec8367efdba95a99523dd06d918cb0ae8",
-    #     )
-    #
-    #     # This defines an external Bazel workspace.
-    #     nixpkgs_package(
-    #         name = "bison",
-    #         repositories = { "nixpkgs": "@nixpkgs//:default.nix" },
-    #     )
-    #
-    # some/BUILD.bazel:
-    #
-    #     genrule(
-    #        ...
-    #        cmd = "$(location @bison//:bin/bison) -other -args",
-    #        tools = [
-    #            ...
-    #            "@bison//:bin/bison",
-    #        ],
-    #     )
-    [
-      bash
-      coreutils
-      file
-      findutils
-      gawk
-      gnugrep
-      gnused
-      gnutar
-      gzip
-      python3
-      unzip
-      which
-      zip
-    ];
-
-  defaultShellPath = lib.makeBinPath defaultShellUtils;
-
-  # Java toolchain used for the build and tests
-  javaToolchain = "@bazel_tools//tools/jdk:toolchain_${buildJdkName}";
-
-  platforms = lib.platforms.linux ++ lib.platforms.darwin;
-
-  # This repository is fetched by bazel at runtime
-  # however it contains prebuilt java binaries, with wrong interpreter
-  # and libraries path.
-  # We prefetch it, patch it, and override it in a global bazelrc.
-  system = if stdenv.hostPlatform.isDarwin then "darwin" else "linux";
-
-  # on aarch64 Darwin, `uname -m` returns "arm64"
-  arch = with stdenv.hostPlatform; if isDarwin && isAarch64 then "arm64" else parsed.cpu.name;
-
-  remote_java_tools = stdenv.mkDerivation {
-    name = "remote_java_tools_${system}";
-
-    src = srcDepsSet."java_tools_javac11_${system}-v10.6.zip";
-
-    nativeBuildInputs = [ unzip ]
-      ++ lib.optional stdenv.isLinux autoPatchelfHook;
-    buildInputs = [ gcc-unwrapped ];
-
-    sourceRoot = ".";
-
-    buildPhase = ''
-      runHook preBuild
-
-      mkdir $out;
-
-      runHook postBuild
-    '';
-
-    installPhase = ''
-      runHook preInstall
-
-      cp -Ra * $out/
-      touch $out/WORKSPACE
-
-      runHook postInstall
-    '';
-  };
-
-  bazelRC = writeTextFile {
-    name = "bazel-rc";
-    text = ''
-      startup --server_javabase=${runJdk}
-
-      # Can't use 'common'; https://github.com/bazelbuild/bazel/issues/3054
-      # Most commands inherit from 'build' anyway.
-      build --distdir=${distDir}
-      fetch --distdir=${distDir}
-      query --distdir=${distDir}
-
-      build --override_repository=${remote_java_tools.name}=${remote_java_tools}
-      fetch --override_repository=${remote_java_tools.name}=${remote_java_tools}
-      query --override_repository=${remote_java_tools.name}=${remote_java_tools}
-
-      # Provide a default java toolchain, this will be the same as ${runJdk}
-      build --host_javabase='@local_jdk//:jdk'
-
-      # load default location for the system wide configuration
-      try-import /etc/bazel.bazelrc
-    '';
-  };
-
-in
-stdenv.mkDerivation rec {
-  pname = "bazel";
-  inherit version;
-
-  meta = with lib; {
-    homepage = "https://github.com/bazelbuild/bazel/";
-    description = "Build tool that builds code quickly and reliably";
-    sourceProvenance = with sourceTypes; [
-      fromSource
-      binaryBytecode  # source bundles dependencies as jars
-    ];
-    license = licenses.asl20;
-    maintainers = lib.teams.bazel.members;
-    inherit platforms;
-  };
-
-  inherit src;
-  inherit sourceRoot;
-  patches = [
-    ./upb-clang16.patch
-
-    # On Darwin, the last argument to gcc is coming up as an empty string. i.e: ''
-    # This is breaking the build of any C target. This patch removes the last
-    # argument if it's found to be an empty string.
-    ../trim-last-argument-to-gcc-if-empty.patch
-
-    # On Darwin, using clang 6 to build fails because of a linker error (see #105573),
-    # but using clang 7 fails because libarclite_macosx.a cannot be found when linking
-    # the xcode_locator tool.
-    # This patch removes using the -fobjc-arc compiler option and makes the code
-    # compile without automatic reference counting. Caveat: this leaks memory, but
-    # we accept this fact because xcode_locator is only a short-lived process used during the build.
-    ./no-arc.patch
-
-    # --experimental_strict_action_env (which may one day become the default
-    # see bazelbuild/bazel#2574) hardcodes the default
-    # action environment to a non hermetic value (e.g. "/usr/local/bin").
-    # This is non hermetic on non-nixos systems. On NixOS, bazel cannot find the required binaries.
-    # So we are replacing this bazel paths by defaultShellPath,
-    # improving hermeticity and making it work in nixos.
-    (substituteAll {
-      src = ../strict_action_env.patch;
-      strictActionEnvPatch = defaultShellPath;
-    })
-
-    (substituteAll {
-      src = ./actions_path.patch;
-      actionsPathPatch = defaultShellPath;
-    })
-
-    # bazel reads its system bazelrc in /etc
-    # override this path to a builtin one
-    (substituteAll {
-      src = ../bazel_rc.patch;
-      bazelSystemBazelRCPath = bazelRC;
-    })
-
-    # disable suspend detection during a build inside Nix as this is
-    # not available inside the darwin sandbox
-    ../bazel_darwin_sandbox.patch
-  ] ++ lib.optional enableNixHacks ../nix-hacks.patch;
-
-
-  # Additional tests that check bazel’s functionality. Execute
-  #
-  #     nix-build . -A bazel.tests
-  #
-  # in the nixpkgs checkout root to exercise them locally.
-  passthru.tests =
-    let
-      runLocal = name: attrs: script:
-      let
-        attrs' = removeAttrs attrs [ "buildInputs" ];
-        buildInputs = attrs.buildInputs or [];
-      in
-      runCommandCC name ({
-        inherit buildInputs;
-        preferLocalBuild = true;
-        meta.platforms = platforms;
-      } // attrs') script;
-
-      # bazel wants to extract itself into $install_dir/install every time it runs,
-      # so let’s do that only once.
-      extracted = bazelPkg:
-        let install_dir =
-          # `install_base` field printed by `bazel info`, minus the hash.
-          # yes, this path is kinda magic. Sorry.
-          "$HOME/.cache/bazel/_bazel_nixbld";
-        in runLocal "bazel-extracted-homedir" { passthru.install_dir = install_dir; } ''
-            export HOME=$(mktemp -d)
-            touch WORKSPACE # yeah, everything sucks
-            install_base="$(${bazelPkg}/bin/bazel info | grep install_base)"
-            # assert it’s actually below install_dir
-            [[ "$install_base" =~ ${install_dir} ]] \
-              || (echo "oh no! $install_base but we are \
-            trying to copy ${install_dir} to $out instead!"; exit 1)
-            cp -R ${install_dir} $out
-          '';
-
-      bazelTest = { name, bazelScript, workspaceDir, bazelPkg, buildInputs ? [] }:
-        let
-          be = extracted bazelPkg;
-        in runLocal name { inherit buildInputs; } (
-          # skip extraction caching on Darwin, because nobody knows how Darwin works
-          (lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
-            # set up home with pre-unpacked bazel
-            export HOME=$(mktemp -d)
-            mkdir -p ${be.install_dir}
-            cp -R ${be}/install ${be.install_dir}
-
-            # https://stackoverflow.com/questions/47775668/bazel-how-to-skip-corrupt-installation-on-centos6
-            # Bazel checks whether the mtime of the install dir files
-            # is >9 years in the future, otherwise it extracts itself again.
-            # see PosixFileMTime::IsUntampered in src/main/cpp/util
-            # What the hell bazel.
-            ${lr}/bin/lr -0 -U ${be.install_dir} | ${xe}/bin/xe -N0 -0 touch --date="9 years 6 months" {}
-          '')
-          +
-          ''
-            # Note https://github.com/bazelbuild/bazel/issues/5763#issuecomment-456374609
-            # about why to create a subdir for the workspace.
-            cp -r ${workspaceDir} wd && chmod u+w wd && cd wd
-
-            ${bazelScript}
-
-            touch $out
-          '');
-
-      bazelWithNixHacks = bazel_self.override { enableNixHacks = true; };
-
-      bazel-examples = fetchFromGitHub {
-        owner = "bazelbuild";
-        repo = "examples";
-        rev = "4183fc709c26a00366665e2d60d70521dc0b405d";
-        sha256 = "1mm4awx6sa0myiz9j4hwp71rpr7yh8vihf3zm15n2ii6xb82r31k";
-      };
-
-    in (lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) {
-      # `extracted` doesn’t work on darwin
-      shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; bazel = bazel_self; };
-    }) // {
-      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; };
-
-      cppWithNixHacks = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
-      javaWithNixHacks = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
-      protobufWithNixHacks = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
-      pythonBinPathWithNixHacks = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
-    };
-
-  src_for_updater = stdenv.mkDerivation rec {
-    name = "updater-sources";
-    inherit src;
-    nativeBuildInputs = [ unzip ];
-    inherit sourceRoot;
-    installPhase = ''
-      runHook preInstall
-
-      cp -r . "$out"
-
-      runHook postInstall
-    '';
-  };
-  # update the list of workspace dependencies
-  passthru.updater = writeScript "update-bazel-deps.sh" ''
-    #!${runtimeShell}
-    (cd "${src_for_updater}" &&
-        BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \
-        "${bazel_self}"/bin/bazel \
-            query 'kind(http_archive, //external:all) + kind(http_file, //external:all) + kind(distdir_tar, //external:all) + kind(git_repository, //external:all)' \
-            --loading_phase_threads=1 \
-            --output build) \
-    | "${python3}"/bin/python3 "${./update-srcDeps.py}" \
-      "${builtins.toString ./src-deps.json}"
-  '';
-
-  # Necessary for the tests to pass on Darwin with sandbox enabled.
-  # Bazel starts a local server and needs to bind a local address.
-  __darwinAllowLocalNetworking = true;
-
-  postPatch = let
-
-    darwinPatches = ''
-      bazelLinkFlags () {
-        eval set -- "$NIX_LDFLAGS"
-        local flag
-        for flag in "$@"; do
-          printf ' -Wl,%s' "$flag"
-        done
-      }
-
-      # Disable Bazel's Xcode toolchain detection which would configure compilers
-      # and linkers from Xcode instead of from PATH
-      export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
-
-      # Explicitly configure gcov since we don't have it on Darwin, so autodetection fails
-      export GCOV=${coreutils}/bin/false
-
-      # Framework search paths aren't added by bintools hook
-      # https://github.com/NixOS/nixpkgs/pull/41914
-      export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks"
-
-      # libcxx includes aren't added by libcxx hook
-      # https://github.com/NixOS/nixpkgs/pull/41589
-      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${lib.getDev libcxx}/include/c++/v1"
-      # for CLang 16 compatibility in third_party/{zlib}, external/{upb} dependencies
-      export NIX_CFLAGS_COMPILE+=" -Wno-implicit-function-declaration -Wno-gnu-offsetof-extensions"
-
-      # don't use system installed Xcode to run clang, use Nix clang instead
-      sed -i -E "s;/usr/bin/xcrun (--sdk macosx )?clang;${stdenv.cc}/bin/clang $NIX_CFLAGS_COMPILE $(bazelLinkFlags) -framework CoreFoundation;g" \
-        scripts/bootstrap/compile.sh \
-        src/tools/xcode/realpath/BUILD \
-        src/tools/xcode/stdredirect/BUILD \
-        tools/osx/BUILD
-
-      substituteInPlace scripts/bootstrap/compile.sh --replace ' -mmacosx-version-min=10.9' ""
-
-      # nixpkgs's libSystem cannot use pthread headers directly, must import GCD headers instead
-      sed -i -e "/#include <pthread\/spawn.h>/i #include <dispatch/dispatch.h>" src/main/cpp/blaze_util_darwin.cc
-
-      # clang installed from Xcode has a compatibility wrapper that forwards
-      # invocations of gcc to clang, but vanilla clang doesn't
-      sed -i -e 's;_find_generic(repository_ctx, "gcc", "CC", overriden_tools);_find_generic(repository_ctx, "clang", "CC", overriden_tools);g' tools/cpp/unix_cc_configure.bzl
-
-      sed -i -e 's;/usr/bin/libtool;${cctools}/bin/libtool;g' tools/cpp/unix_cc_configure.bzl
-      wrappers=( tools/cpp/osx_cc_wrapper.sh tools/cpp/osx_cc_wrapper.sh.tpl )
-      for wrapper in "''${wrappers[@]}"; do
-        sed -i -e "s,/usr/bin/install_name_tool,${cctools}/bin/install_name_tool,g" $wrapper
-      done
-    '';
-
-    genericPatches = ''
-      # Substitute j2objc and objc wrapper's python shebang to plain python path.
-      substituteInPlace tools/j2objc/j2objc_header_map.py --replace "$!/usr/bin/python2.7" "#!${python3.interpreter}"
-      substituteInPlace tools/j2objc/j2objc_wrapper.py --replace "$!/usr/bin/python2.7" "#!${python3.interpreter}"
-      substituteInPlace tools/objc/j2objc_dead_code_pruner.py --replace "$!/usr/bin/python2.7" "#!${python3.interpreter}"
-
-      # md5sum is part of coreutils
-      sed -i 's|/sbin/md5|md5sum|g' \
-        src/BUILD third_party/ijar/test/testenv.sh tools/objc/libtool.sh
-
-      # replace initial value of pythonShebang variable in BazelPythonSemantics.java
-      substituteInPlace src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java \
-        --replace '"#!/usr/bin/env " + pythonExecutableName' "\"#!${python3}/bin/python\""
-
-      # substituteInPlace is rather slow, so prefilter the files with grep
-      grep -rlZ /bin/ src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
-        # If you add more replacements here, you must change the grep above!
-        # Only files containing /bin are taken into account.
-        substituteInPlace "$path" \
-          --replace /bin/bash ${bash}/bin/bash \
-          --replace "/usr/bin/env bash" ${bash}/bin/bash \
-          --replace "/usr/bin/env python" ${python3}/bin/python \
-          --replace /usr/bin/env ${coreutils}/bin/env \
-          --replace /bin/true ${coreutils}/bin/true
-      done
-
-      # bazel test runner include references to /bin/bash
-      substituteInPlace tools/build_rules/test_rules.bzl \
-        --replace /bin/bash ${bash}/bin/bash
-
-      for i in $(find tools/cpp/ -type f)
-      do
-        substituteInPlace $i \
-          --replace /bin/bash ${bash}/bin/bash
-      done
-
-      # Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
-      substituteInPlace scripts/bootstrap/compile.sh \
-          --replace /bin/bash ${bash}/bin/bash
-
-      # add nix environment vars to .bazelrc
-      cat >> .bazelrc <<EOF
-      # Limit the resources Bazel is allowed to use during the build to 1/2 the
-      # available RAM and 3/4 the available CPU cores. This should help avoid
-      # overwhelming the build machine.
-      build --local_ram_resources=HOST_RAM*.5
-      build --local_cpu_resources=HOST_CPUS*.75
-
-      build --distdir=${distDir}
-      fetch --distdir=${distDir}
-      build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
-      build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
-      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
-      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
-      build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
-      build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
-      build --host_javabase='@local_jdk//:jdk'
-      build --host_java_toolchain='${javaToolchain}'
-      build --verbose_failures
-      build --curses=no
-      EOF
-
-      # add the same environment vars to compile.sh
-      sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
-          -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
-          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
-          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
-          -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
-          -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
-          -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
-          -e "/\$command \\\\$/a --host_java_toolchain='${javaToolchain}' \\\\" \
-          -e "/\$command \\\\$/a --verbose_failures \\\\" \
-          -e "/\$command \\\\$/a --curses=no \\\\" \
-          -i scripts/bootstrap/compile.sh
-
-      # This is necessary to avoid:
-      # "error: no visible @interface for 'NSDictionary' declares the selector
-      # 'initWithContentsOfURL:error:'"
-      # This can be removed when the apple_sdk is upgraded beyond 10.13+
-      sed -i '/initWithContentsOfURL:versionPlistUrl/ {
-        N
-        s/error:nil\];/\];/
-      }' tools/osx/xcode_locator.m
-
-      # append the PATH with defaultShellPath in tools/bash/runfiles/runfiles.bash
-      echo "PATH=\$PATH:${defaultShellPath}" >> runfiles.bash.tmp
-      cat tools/bash/runfiles/runfiles.bash >> runfiles.bash.tmp
-      mv runfiles.bash.tmp tools/bash/runfiles/runfiles.bash
-
-      patchShebangs .
-    '';
-    in lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches
-     + genericPatches;
-
-  buildInputs = [buildJdk] ++ defaultShellUtils;
-
-  # when a command can’t be found in a bazel build, you might also
-  # need to add it to `defaultShellPath`.
-  nativeBuildInputs = [
-    installShellFiles
-    makeWrapper
-    python3
-    unzip
-    which
-    zip
-    python3.pkgs.absl-py   # Needed to build fish completion
-  ] ++ lib.optionals (stdenv.isDarwin) [ cctools libcxx CoreFoundation CoreServices Foundation ];
-
-  # Bazel makes extensive use of symlinks in the WORKSPACE.
-  # This causes problems with infinite symlinks if the build output is in the same location as the
-  # Bazel WORKSPACE. This is why before executing the build, the source code is moved into a
-  # subdirectory.
-  # Failing to do this causes "infinite symlink expansion detected"
-  preBuildPhases = ["preBuildPhase"];
-  preBuildPhase = ''
-    mkdir bazel_src
-    shopt -s dotglob extglob
-    mv !(bazel_src) bazel_src
-  '';
-  buildPhase = ''
-    runHook preBuild
-
-    # Increasing memory during compilation might be necessary.
-    # export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m"
-
-    # If EMBED_LABEL isn't set, it'd be auto-detected from CHANGELOG.md
-    # and `git rev-parse --short HEAD` which would result in
-    # "3.7.0- (@non-git)" due to non-git build and incomplete changelog.
-    # Actual bazel releases use scripts/release/common.sh which is based
-    # on branch/tag information which we don't have with tarball releases.
-    # Note that .bazelversion is always correct and is based on bazel-*
-    # executable name, version checks should work fine
-    export EMBED_LABEL="${version}- (@non-git)"
-    ${bash}/bin/bash ./bazel_src/compile.sh
-    ./bazel_src/scripts/generate_bash_completion.sh \
-        --bazel=./bazel_src/output/bazel \
-        --output=./bazel_src/output/bazel-complete.bash \
-        --prepend=./bazel_src/scripts/bazel-complete-header.bash \
-        --prepend=./bazel_src/scripts/bazel-complete-template.bash
-    ${python3}/bin/python3 ./bazel_src/scripts/generate_fish_completion.py \
-        --bazel=./bazel_src/output/bazel \
-        --output=./bazel_src/output/bazel-complete.fish
-
-    # need to change directory for bazel to find the workspace
-    cd ./bazel_src
-    # build execlog tooling
-    export HOME=$(mktemp -d)
-    ./output/bazel build  src/tools/execlog:parser_deploy.jar
-    cd -
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/bin
-
-    # official wrapper scripts that searches for $WORKSPACE_ROOT/tools/bazel
-    # if it can’t find something in tools, it calls $out/bin/bazel-{version}-{os_arch}
-    # 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
-    cp ./bazel_src/bazel-bin/src/tools/execlog/parser_deploy.jar $out/share/parser_deploy.jar
-    cat <<EOF > $out/bin/bazel-execlog
-    #!${runtimeShell} -e
-    ${runJdk}/bin/java -jar $out/share/parser_deploy.jar \$@
-    EOF
-    chmod +x $out/bin/bazel-execlog
-
-    # shell completion files
-    installShellCompletion --bash \
-      --name bazel.bash \
-      ./bazel_src/output/bazel-complete.bash
-    installShellCompletion --zsh \
-      --name _bazel \
-      ./bazel_src/scripts/zsh_completion/_bazel
-    installShellCompletion --fish \
-      --name bazel.fish \
-      ./bazel_src/output/bazel-complete.fish
-  '';
-
-  # Install check fails on `aarch64-darwin`
-  # https://github.com/NixOS/nixpkgs/issues/145587
-  doInstallCheck = stdenv.hostPlatform.system != "aarch64-darwin";
-  installCheckPhase = ''
-    export TEST_TMPDIR=$(pwd)
-
-    hello_test () {
-      $out/bin/bazel test \
-        --test_output=errors \
-        --java_toolchain='${javaToolchain}' \
-        examples/cpp:hello-success_test \
-        examples/java-native/src/test/java/com/example/myproject:hello
-    }
-
-    cd ./bazel_src
-
-    # test whether $WORKSPACE_ROOT/tools/bazel works
-
-    mkdir -p tools
-    cat > tools/bazel <<"EOF"
-    #!${runtimeShell} -e
-    exit 1
-    EOF
-    chmod +x tools/bazel
-
-    # first call should fail if tools/bazel is used
-    ! hello_test
-
-    cat > tools/bazel <<"EOF"
-    #!${runtimeShell} -e
-    exec "$BAZEL_REAL" "$@"
-    EOF
-
-    # second call succeeds because it defers to $out/bin/bazel-{version}-{os_arch}
-    hello_test
-
-    runHook postInstall
-  '';
-
-  # Save paths to hardcoded dependencies so Nix can detect them.
-  # This is needed because the templates get tar’d up into a .jar.
-  postFixup = ''
-    mkdir -p $out/nix-support
-    echo "${defaultShellPath}" >> $out/nix-support/depends
-    # The string literal specifying the path to the bazel-rc file is sometimes
-    # stored non-contiguously in the binary due to gcc optimisations, which leads
-    # Nix to miss the hash when scanning for dependencies
-    echo "${bazelRC}" >> $out/nix-support/depends
-  '' + lib.optionalString stdenv.isDarwin ''
-    echo "${cctools}" >> $out/nix-support/depends
-  '';
-
-  dontStrip = true;
-  dontPatchELF = true;
-}
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/no-arc.patch b/pkgs/development/tools/build-managers/bazel/bazel_4/no-arc.patch
deleted file mode 100644
index 012e613c2f19..000000000000
--- a/pkgs/development/tools/build-managers/bazel/bazel_4/no-arc.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/tools/osx/xcode_locator.m	2020-12-10 13:27:29.000000000 +0100
-+++ b/tools/osx/xcode_locator.m	2021-02-01 09:09:32.159557051 +0100
-@@ -21,10 +21,6 @@
- // 6,6.4,6.4.1 = 6.4.1
- // 6.3,6.3.0 = 6.3
- 
--#if !defined(__has_feature) || !__has_feature(objc_arc)
--#error "This file requires ARC support."
--#endif
--
- #import <CoreServices/CoreServices.h>
- #import <Foundation/Foundation.h>
- 
---- a/tools/osx/xcode_configure.bzl	1980-01-01 01:00:00.000000000 +0100
-+++ b/tools/osx/xcode_configure.bzl	2021-02-01 09:36:57.773418444 +0100
-@@ -123,7 +123,6 @@
-         "macosx",
-         "clang",
-         "-mmacosx-version-min=10.9",
--        "-fobjc-arc",
-         "-framework",
-         "CoreServices",
-         "-framework",
---- a/tools/osx/BUILD	2021-02-01 11:01:02.191659553 +0100
-+++ b/tools/osx/BUILD	2021-02-01 11:04:29.735071019 +0100
-@@ -27,7 +27,7 @@
- ])
- 
- DARWIN_XCODE_LOCATOR_COMPILE_COMMAND = """
--  /usr/bin/xcrun --sdk macosx clang -mmacosx-version-min=10.9 -fobjc-arc -framework CoreServices \
-+  /usr/bin/xcrun --sdk macosx clang -mmacosx-version-min=10.9 -framework CoreServices \
-       -framework Foundation -o $@ $<
- """
- 
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json b/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json
deleted file mode 100644
index 4496343ec691..000000000000
--- a/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json
+++ /dev/null
@@ -1,1585 +0,0 @@
-{
-    "1.25.0.zip": {
-        "name": "1.25.0.zip",
-        "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip",
-            "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip"
-        ]
-    },
-    "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz": {
-        "name": "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
-        "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
-            "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz"
-        ]
-    },
-    "382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz": {
-        "name": "382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
-        "sha256": "7992217989f3156f8109931c1fc6db3434b7414957cb82371552377beaeb9d6c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
-            "https://github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz"
-        ]
-    },
-    "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": {
-        "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
-        ]
-    },
-    "7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz": {
-        "name": "7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz",
-        "sha256": "8e7d59a5b12b233be5652e3d29f42fba01c7cbab09f6b3a8d0a57ed6d1e9a0da",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz",
-            "https://github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz"
-        ]
-    },
-    "aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz": {
-        "name": "aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz",
-        "sha256": "9f385e146410a8150b6f4cb1a57eab7ec806ced48d427554b1e754877ff26c3e",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz",
-            "https://github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz"
-        ]
-    },
-    "android_tools": {
-        "name": "android_tools",
-        "sha256": "ea5c0589a01e2a9f43c20e5c145d3530e3b3bdbe7322789bc5da38d0ca49b837",
-        "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.19.0rc3.tar.gz"
-    },
-    "android_tools_for_testing": {
-        "name": "android_tools_for_testing",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "ed5290594244c2eeab41f0104519bcef51e27c699ff4b379fcbd25215270513e",
-        "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.23.0.tar.gz"
-    },
-    "android_tools_pkg-0.23.0.tar.gz": {
-        "name": "android_tools_pkg-0.23.0.tar.gz",
-        "sha256": "ed5290594244c2eeab41f0104519bcef51e27c699ff4b379fcbd25215270513e",
-        "urls": [
-            "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.23.0.tar.gz"
-        ]
-    },
-    "b1c40e1de81913a3c40e5948f78719c28152486d.zip": {
-        "name": "b1c40e1de81913a3c40e5948f78719c28152486d.zip",
-        "sha256": "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip",
-            "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip"
-        ]
-    },
-    "bazel-skylib-1.0.3.tar.gz": {
-        "name": "bazel-skylib-1.0.3.tar.gz",
-        "sha256": "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
-            "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz"
-        ]
-    },
-    "bazel-toolchains-3.1.0.tar.gz": {
-        "name": "bazel-toolchains-3.1.0.tar.gz",
-        "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz",
-            "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
-        ]
-    },
-    "bazel_j2objc": {
-        "name": "bazel_j2objc",
-        "sha256": "8d3403b5b7db57e347c943d214577f6879e5b175c2b59b7e075c0b6453330e9b",
-        "strip_prefix": "j2objc-2.5",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip",
-            "https://github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip"
-        ]
-    },
-    "bazel_skylib": {
-        "name": "bazel_skylib",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
-            "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz"
-        ]
-    },
-    "bazel_toolchains": {
-        "name": "bazel_toolchains",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
-        "strip_prefix": "bazel-toolchains-3.1.0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz",
-            "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
-        ]
-    },
-    "bazel_website": {
-        "build_file_content": "\nexports_files([\"_sass/style.scss\"])\n",
-        "name": "bazel_website",
-        "sha256": "a5f531dd1d62e6947dcfc279656ffc2fdf6f447c163914c5eabf7961b4cb6eb4",
-        "strip_prefix": "bazel-website-c174fa288aa079b68416d2ce2cc97268fa172f42",
-        "urls": [
-            "https://github.com/bazelbuild/bazel-website/archive/c174fa288aa079b68416d2ce2cc97268fa172f42.tar.gz"
-        ]
-    },
-    "boringssl": {
-        "generator_function": "grpc_deps",
-        "generator_name": "boringssl",
-        "name": "boringssl",
-        "sha256": "cb0fd3eda612d4ae4be21108938800a19b015717a7627ea7f530e3469d207707",
-        "strip_prefix": "boringssl-88aeb757f1a415c71fb4cbf5af936ecae4bc8179",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/88aeb757f1a415c71fb4cbf5af936ecae4bc8179.tar.gz",
-            "https://github.com/google/boringssl/archive/88aeb757f1a415c71fb4cbf5af936ecae4bc8179.tar.gz"
-        ]
-    },
-    "build_bazel_apple_support": {
-        "generator_function": "grpc_deps",
-        "generator_name": "build_bazel_apple_support",
-        "name": "build_bazel_apple_support",
-        "sha256": "122ebf7fe7d1c8e938af6aeaee0efe788a3a2449ece5a8d6a428cb18d6f88033",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/apple_support/releases/download/0.7.1/apple_support.0.7.1.tar.gz",
-            "https://github.com/bazelbuild/apple_support/releases/download/0.7.1/apple_support.0.7.1.tar.gz"
-        ]
-    },
-    "build_bazel_rules_apple": {
-        "generator_function": "grpc_deps",
-        "generator_name": "build_bazel_rules_apple",
-        "name": "build_bazel_rules_apple",
-        "sha256": "bdc8e66e70b8a75da23b79f1f8c6207356df07d041d96d2189add7ee0780cf4e",
-        "strip_prefix": "rules_apple-b869b0d3868d78a1d4ffd866ccb304fb68aa12c3",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_apple/archive/b869b0d3868d78a1d4ffd866ccb304fb68aa12c3.tar.gz",
-            "https://github.com/bazelbuild/rules_apple/archive/b869b0d3868d78a1d4ffd866ccb304fb68aa12c3.tar.gz"
-        ]
-    },
-    "build_bazel_rules_nodejs": {
-        "name": "build_bazel_rules_nodejs",
-        "sha256": "f2194102720e662dbf193546585d705e645314319554c6ce7e47d8b59f459e9c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/2.2.2/rules_nodejs-2.2.2.tar.gz",
-            "https://github.com/bazelbuild/rules_nodejs/releases/download/2.2.2/rules_nodejs-2.2.2.tar.gz"
-        ]
-    },
-    "com_github_cares_cares": {
-        "build_file": "@com_github_grpc_grpc//third_party:cares/cares.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "com_github_cares_cares",
-        "name": "com_github_cares_cares",
-        "sha256": "e8c2751ddc70fed9dc6f999acd92e232d5846f009ee1674f8aee81f19b2b915a",
-        "strip_prefix": "c-ares-e982924acee7f7313b4baa4ee5ec000c5e373c30",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/c-ares/c-ares/archive/e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz",
-            "https://github.com/c-ares/c-ares/archive/e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz"
-        ]
-    },
-    "com_github_gflags_gflags": {
-        "generator_function": "grpc_deps",
-        "generator_name": "com_github_gflags_gflags",
-        "name": "com_github_gflags_gflags",
-        "sha256": "63ae70ea3e05780f7547d03503a53de3a7d2d83ad1caaa443a31cb20aea28654",
-        "strip_prefix": "gflags-28f50e0fed19872e0fd50dd23ce2ee8cd759338e",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/gflags/gflags/archive/28f50e0fed19872e0fd50dd23ce2ee8cd759338e.tar.gz",
-            "https://github.com/gflags/gflags/archive/28f50e0fed19872e0fd50dd23ce2ee8cd759338e.tar.gz"
-        ]
-    },
-    "com_github_google_benchmark": {
-        "generator_function": "grpc_deps",
-        "generator_name": "com_github_google_benchmark",
-        "name": "com_github_google_benchmark",
-        "sha256": "f68aec93154d010324c05bcd8c5cc53468b87af88d87acb5ddcfaa1bba044837",
-        "strip_prefix": "benchmark-090faecb454fbd6e6e17a75ef8146acb037118d4",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/benchmark/archive/090faecb454fbd6e6e17a75ef8146acb037118d4.tar.gz",
-            "https://github.com/google/benchmark/archive/090faecb454fbd6e6e17a75ef8146acb037118d4.tar.gz"
-        ]
-    },
-    "com_github_google_re2": {
-        "generator_function": "grpc_deps",
-        "generator_name": "com_github_google_re2",
-        "name": "com_github_google_re2",
-        "sha256": "9f385e146410a8150b6f4cb1a57eab7ec806ced48d427554b1e754877ff26c3e",
-        "strip_prefix": "re2-aecba11114cf1fac5497aeb844b6966106de3eb6",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz",
-            "https://github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz"
-        ]
-    },
-    "com_github_grpc_grpc": {
-        "name": "com_github_grpc_grpc",
-        "patch_args": [
-            "-p1"
-        ],
-        "patches": [
-            "//third_party/grpc:grpc_1.33.1.patch"
-        ],
-        "sha256": "58eaee5c0f1bd0b92ebe1fa0606ec8f14798500620e7444726afcaf65041cb63",
-        "strip_prefix": "grpc-1.33.1",
-        "urls": [
-            "https://mirror.bazel.build/github.com/grpc/grpc/archive/v1.33.1.tar.gz",
-            "https://github.com/grpc/grpc/archive/v1.33.1.tar.gz"
-        ]
-    },
-    "com_google_absl": {
-        "generator_function": "grpc_deps",
-        "generator_name": "com_google_absl",
-        "name": "com_google_absl",
-        "sha256": "f368a8476f4e2e0eccf8a7318b98dafbe30b2600f4e3cf52636e5eb145aba06a",
-        "strip_prefix": "abseil-cpp-df3ea785d8c30a9503321a3d35ee7d35808f190d",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz",
-            "https://github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz"
-        ]
-    },
-    "com_google_googletest": {
-        "name": "com_google_googletest",
-        "sha256": "9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb",
-        "strip_prefix": "googletest-release-1.10.0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/googletest/archive/release-1.10.0.tar.gz",
-            "https://github.com/google/googletest/archive/release-1.10.0.tar.gz"
-        ]
-    },
-    "com_google_protobuf": {
-        "name": "com_google_protobuf",
-        "patch_args": [
-            "-p1"
-        ],
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "patches": [
-            "//third_party/protobuf:3.13.0.patch"
-        ],
-        "sha256": "9b4ee22c250fe31b16f1a24d61467e40780a3fbb9b91c3b65be2a376ed913a1a",
-        "strip_prefix": "protobuf-3.13.0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz",
-            "https://github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz"
-        ]
-    },
-    "coverage_output_generator-v2.5.zip": {
-        "name": "coverage_output_generator-v2.5.zip",
-        "sha256": "cd14f1cb4559e4723e63b7e7b06d09fcc3bd7ba58d03f354cdff1439bd936a7d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.5.zip"
-        ]
-    },
-    "cython": {
-        "build_file": "@com_github_grpc_grpc//third_party:cython.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "cython",
-        "name": "cython",
-        "sha256": "d68138a2381afbdd0876c3cb2a22389043fa01c4badede1228ee073032b07a27",
-        "strip_prefix": "cython-c2b80d87658a8525ce091cbe146cb7eaa29fed5c",
-        "urls": [
-            "https://github.com/cython/cython/archive/c2b80d87658a8525ce091cbe146cb7eaa29fed5c.tar.gz"
-        ]
-    },
-    "desugar_jdk_libs": {
-        "name": "desugar_jdk_libs",
-        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
-        "strip_prefix": "desugar_jdk_libs-e0b0291b2c51fbe5a7cfa14473a1ae850f94f021",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
-        ]
-    },
-    "df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz": {
-        "name": "df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz",
-        "sha256": "f368a8476f4e2e0eccf8a7318b98dafbe30b2600f4e3cf52636e5eb145aba06a",
-        "urls": [
-            "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz",
-            "https://github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz"
-        ]
-    },
-    "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": {
-        "name": "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
-        ]
-    },
-    "e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz": {
-        "name": "e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz",
-        "sha256": "e8c2751ddc70fed9dc6f999acd92e232d5846f009ee1674f8aee81f19b2b915a",
-        "urls": [
-            "https://mirror.bazel.build/github.com/c-ares/c-ares/archive/e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz",
-            "https://github.com/c-ares/c-ares/archive/e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz"
-        ]
-    },
-    "enum34": {
-        "build_file": "@com_github_grpc_grpc//third_party:enum34.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "enum34",
-        "name": "enum34",
-        "sha256": "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1",
-        "strip_prefix": "enum34-1.1.6",
-        "urls": [
-            "https://files.pythonhosted.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz"
-        ]
-    },
-    "envoy_api": {
-        "generator_function": "grpc_deps",
-        "generator_name": "envoy_api",
-        "name": "envoy_api",
-        "sha256": "466585f253471259ce17641348149f458270316e81ec6702fdd8bf0b1b681256",
-        "strip_prefix": "data-plane-api-9997e1137cdb59e622af13e57ca915a2f3c9f84f",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/data-plane-api/archive/9997e1137cdb59e622af13e57ca915a2f3c9f84f.tar.gz",
-            "https://github.com/envoyproxy/data-plane-api/archive/9997e1137cdb59e622af13e57ca915a2f3c9f84f.tar.gz"
-        ]
-    },
-    "futures": {
-        "build_file": "@com_github_grpc_grpc//third_party:futures.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "futures",
-        "name": "futures",
-        "sha256": "7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794",
-        "strip_prefix": "futures-3.3.0",
-        "urls": [
-            "https://files.pythonhosted.org/packages/47/04/5fc6c74ad114032cd2c544c575bffc17582295e9cd6a851d6026ab4b2c00/futures-3.3.0.tar.gz"
-        ]
-    },
-    "io_bazel_rules_go": {
-        "generator_function": "grpc_deps",
-        "generator_name": "io_bazel_rules_go",
-        "name": "io_bazel_rules_go",
-        "sha256": "a82a352bffae6bee4e95f68a8d80a70e87f42c4741e6a448bec11998fcc82329",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_go/releases/download/0.18.5/rules_go-0.18.5.tar.gz",
-            "https://github.com/bazelbuild/rules_go/releases/download/0.18.5/rules_go-0.18.5.tar.gz"
-        ]
-    },
-    "io_bazel_rules_python": {
-        "generator_function": "grpc_deps",
-        "generator_name": "io_bazel_rules_python",
-        "name": "io_bazel_rules_python",
-        "sha256": "aa96a691d3a8177f3215b14b0edc9641787abaaa30363a080165d06ab65e1161",
-        "url": "https://github.com/bazelbuild/rules_python/releases/download/0.0.1/rules_python-0.0.1.tar.gz"
-    },
-    "io_bazel_rules_sass": {
-        "name": "io_bazel_rules_sass",
-        "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647",
-        "strip_prefix": "rules_sass-1.25.0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip",
-            "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip"
-        ]
-    },
-    "io_bazel_skydoc": {
-        "name": "io_bazel_skydoc",
-        "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1",
-        "strip_prefix": "stardoc-1ef781ced3b1443dca3ed05dec1989eca1a4e1cd",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
-            "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz"
-        ]
-    },
-    "io_opencensus_cpp": {
-        "generator_function": "grpc_deps",
-        "generator_name": "io_opencensus_cpp",
-        "name": "io_opencensus_cpp",
-        "sha256": "90d6fafa8b1a2ea613bf662731d3086e1c2ed286f458a95c81744df2dbae41b1",
-        "strip_prefix": "opencensus-cpp-c9a4da319bc669a772928ffc55af4a61be1a1176",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/census-instrumentation/opencensus-cpp/archive/c9a4da319bc669a772928ffc55af4a61be1a1176.tar.gz",
-            "https://github.com/census-instrumentation/opencensus-cpp/archive/c9a4da319bc669a772928ffc55af4a61be1a1176.tar.gz"
-        ]
-    },
-    "java_tools_javac11_darwin-v10.6.zip": {
-        "name": "java_tools_javac11_darwin-v10.6.zip",
-        "sha256": "d15b05d2061382748f779dc566537ea567a46bcba6fa34b56d7cb6e6d668adab",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_darwin-v10.6.zip"
-        ]
-    },
-    "java_tools_javac11_linux-v10.6.zip": {
-        "name": "java_tools_javac11_linux-v10.6.zip",
-        "sha256": "085c0ba53ba764e81d4c195524f3c596085cbf9cdc01dd8e6d2ae677e726af35",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_linux-v10.6.zip"
-        ]
-    },
-    "java_tools_javac11_windows-v10.6.zip": {
-        "name": "java_tools_javac11_windows-v10.6.zip",
-        "sha256": "873f1e53d1fa9c8e46b717673816cd822bb7acc474a194a18ff849fd8fa6ff00",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_windows-v10.6.zip"
-        ]
-    },
-    "java_tools_langtools_javac11": {
-        "name": "java_tools_langtools_javac11",
-        "sha256": "cf0814fa002ef3d794582bb086516d8c9ed0958f83f19799cdb08949019fe4c7",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11_v2.zip"
-        ]
-    },
-    "jekyll_tree_0_17_1": {
-        "name": "jekyll_tree_0_17_1",
-        "sha256": "02256ddd20eeaf70cf8fcfe9b2cdddd7be87aedd5848d549474fb0358e0031d3",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.17.1.tar"
-        ]
-    },
-    "jekyll_tree_0_17_2": {
-        "name": "jekyll_tree_0_17_2",
-        "sha256": "13b35dd309a0d52f0a2518a1193f42729c75255f5fae40cea68e4d4224bfaa2e",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.17.2.tar"
-        ]
-    },
-    "jekyll_tree_0_18_1": {
-        "name": "jekyll_tree_0_18_1",
-        "sha256": "98b77f48e37a50fc6f83100bf53f661e10732bb3ddbc226e02d0225cb7a9a7d8",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.18.1.tar"
-        ]
-    },
-    "jekyll_tree_0_19_1": {
-        "name": "jekyll_tree_0_19_1",
-        "sha256": "ec892c59ba18bb8de1f9ae2bde937db144e45f28d6d1c32a2cee847ee81b134d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.19.1.tar"
-        ]
-    },
-    "jekyll_tree_0_19_2": {
-        "name": "jekyll_tree_0_19_2",
-        "sha256": "3c2d9f21ec2fd1c0b8a310f6eb6043027c838810cdfc2457d4346a0e5cdcaa7a",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.19.2.tar"
-        ]
-    },
-    "jekyll_tree_0_20_0": {
-        "name": "jekyll_tree_0_20_0",
-        "sha256": "bb79a63810bf1b0aa1f89bd3bbbeb4a547a30ab9af70c9be656cc6866f4b015b",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.20.0.tar"
-        ]
-    },
-    "jekyll_tree_0_21_0": {
-        "name": "jekyll_tree_0_21_0",
-        "sha256": "23ec39c0138d358c544151e5c81586716d5d1c6124f10a742bead70516e6eb93",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.21.0.tar"
-        ]
-    },
-    "jekyll_tree_0_22_0": {
-        "name": "jekyll_tree_0_22_0",
-        "sha256": "bec5cfaa5560e082e41e33bde276cf93f0f7bcfd2914a3e868f921df8b3ab725",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.22.0.tar"
-        ]
-    },
-    "jekyll_tree_0_23_0": {
-        "name": "jekyll_tree_0_23_0",
-        "sha256": "56c80fcf49dc606fab8ed5e737a7409e9a486585b7b98673be69b5a4984dd774",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.23.0.tar"
-        ]
-    },
-    "jekyll_tree_0_24_0": {
-        "name": "jekyll_tree_0_24_0",
-        "sha256": "988fa567906a73e50d3669909285187ef88c76ecd4aa277f4d1f355fc06a90c8",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.24.0.tar"
-        ]
-    },
-    "jekyll_tree_0_25_0": {
-        "name": "jekyll_tree_0_25_0",
-        "sha256": "e8ab61c047225e808982a564ecd692fd63bd243dccc88a8768ed069a5362a685",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.25.0.tar"
-        ]
-    },
-    "jekyll_tree_0_26_0": {
-        "name": "jekyll_tree_0_26_0",
-        "sha256": "3907dfc6fb27d246e67877e553e8951fac239bb49f2dec7e06b6b09cb0b98b8d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.26.0.tar"
-        ]
-    },
-    "jekyll_tree_0_27_0": {
-        "name": "jekyll_tree_0_27_0",
-        "sha256": "97e2633fefee389daade775da43907aa68699b32212f4e48cb095abe18aa7e65",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.27.0.tar"
-        ]
-    },
-    "jekyll_tree_0_28_0": {
-        "name": "jekyll_tree_0_28_0",
-        "sha256": "64b3fc267fb1f4c56345d96f0ad9f07a2efe43bd15361f818368849cf941b3b7",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.28.0.tar"
-        ]
-    },
-    "jekyll_tree_0_29_0": {
-        "name": "jekyll_tree_0_29_0",
-        "sha256": "99d7a6bf9ef0145c59c54b4319fb31cb855681782080a5490909c4a5463c7215",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.29.0.tar"
-        ]
-    },
-    "jekyll_tree_0_29_1": {
-        "name": "jekyll_tree_0_29_1",
-        "sha256": "cf0a517f1660a7c4fd26a7ef6f3594bbefcf2b670bc0ed610bf3bb6ec3a9fdc3",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.29.1.tar"
-        ]
-    },
-    "jekyll_tree_1_0_0": {
-        "name": "jekyll_tree_1_0_0",
-        "sha256": "61ef65c738a8cd65059f58f2ee5f7eef493136ac4d5e5c3464787d17043febdf",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-1.0.0.tar"
-        ]
-    },
-    "jekyll_tree_1_1_0": {
-        "name": "jekyll_tree_1_1_0",
-        "sha256": "46d82c9249896903ee6be2295fc52a1346a9ee82f61f89b8a2181232c3bd999b",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-1.1.0.tar"
-        ]
-    },
-    "jekyll_tree_1_2_0": {
-        "name": "jekyll_tree_1_2_0",
-        "sha256": "d402a8391ca2624673f124ff42ba8d0d40d4139e5d23111f3995dc6c5f70f63d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-1.2.0.tar"
-        ]
-    },
-    "jekyll_tree_2_0_0": {
-        "name": "jekyll_tree_2_0_0",
-        "sha256": "7d7c424ede503856c61b645d8fdc2513ec6ea8600d76c5e87c45a9a45c16de3e",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-2.0.0.tar"
-        ]
-    },
-    "jekyll_tree_2_1_0": {
-        "name": "jekyll_tree_2_1_0",
-        "sha256": "b0fd257b1d6b1b05705742d55a13b9a20d3e99f49c89334750c872d620e5b88f",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-2.1.0.tar"
-        ]
-    },
-    "jekyll_tree_2_2_0": {
-        "name": "jekyll_tree_2_2_0",
-        "sha256": "4c1506786ab98df8039ec7354b82da7b586b2ae4ab7f7e7d08f3caf74ff28e3d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-2.2.0.tar"
-        ]
-    },
-    "jekyll_tree_3_0_0": {
-        "name": "jekyll_tree_3_0_0",
-        "sha256": "bd1096ad609c253fa7b1473edf4a3aa51f36243e188dbb62c68d8ed4aca2419d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.0.0.tar"
-        ]
-    },
-    "jekyll_tree_3_1_0": {
-        "name": "jekyll_tree_3_1_0",
-        "sha256": "f9d2e22e24af426d6c9de163d91abe6d8af7eb1eabb1d7ff5e9cf4bededf465a",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.1.0-807b377.tar"
-        ]
-    },
-    "jekyll_tree_3_2_0": {
-        "name": "jekyll_tree_3_2_0",
-        "sha256": "6cff8654e739a0c3062183a5a6cc82fcf9a77323051f8c007866d7f4101052a6",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.2.0.tar"
-        ]
-    },
-    "jekyll_tree_3_3_0": {
-        "name": "jekyll_tree_3_3_0",
-        "sha256": "36b81e8ddf4f3caccf41acc82d9e49f000c1be9e92c9cc82793d60ff70636176",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.3.0.tar"
-        ]
-    },
-    "jekyll_tree_3_4_0": {
-        "name": "jekyll_tree_3_4_0",
-        "sha256": "af82e775d911135bcff76e500bb003c4a9fccb949f8ddf4d93c58eca195bf5e8",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.4.0.tar"
-        ]
-    },
-    "jekyll_tree_3_5_0": {
-        "name": "jekyll_tree_3_5_0",
-        "sha256": "aa96cbad14cfab0b422d1d17eac3107a75eb05854d40ab4f1379a6fc87b2e1f8",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.5.0.tar"
-        ]
-    },
-    "jekyll_tree_3_5_1": {
-        "name": "jekyll_tree_3_5_1",
-        "sha256": "1c949ba8da353c93c74a70638e5cb321ea1cd5582eda1b6ad88c6d2d0b569f2f",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.5.1.tar"
-        ]
-    },
-    "jekyll_tree_3_6_0": {
-        "name": "jekyll_tree_3_6_0",
-        "sha256": "1b7a16a2098ca0c290c208a11db886e950d6c523b2cac2d0a0cba4a04aa832f3",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.6.0.tar"
-        ]
-    },
-    "jekyll_tree_3_7_0": {
-        "name": "jekyll_tree_3_7_0",
-        "sha256": "a534d37ef3867c92fae8692852f92820a34f63a5f9092bbbec6505c0f69d8094",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.7.0.tar"
-        ]
-    },
-    "openjdk11_darwin_aarch64_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk11_darwin_aarch64_archive",
-        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
-        "strip_prefix": "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
-        ]
-    },
-    "openjdk11_darwin_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk11_darwin_archive",
-        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
-        ]
-    },
-    "openjdk11_linux_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk11_linux_archive",
-        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk11_windows_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk11_windows_archive",
-        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
-        ]
-    },
-    "openjdk14_darwin_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk14_darwin_archive",
-        "sha256": "088bd4d0890acc9f032b738283bf0f26b2a55c50b02d1c8a12c451d8ddf080dd",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-macosx_x64.tar.gz"
-        ]
-    },
-    "openjdk14_linux_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk14_linux_archive",
-        "sha256": "48bb8947034cd079ad1ef83335e7634db4b12a26743a0dc314b6b861480777aa",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk14_windows_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk14_windows_archive",
-        "sha256": "9cb078b5026a900d61239c866161f0d9558ec759aa15c5b4c7e905370e868284",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-win_x64.zip"
-        ]
-    },
-    "openjdk15_darwin_aarch64_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk15_darwin_aarch64_archive",
-        "sha256": "2613c3f15eef6b6ecd0fd102da92282b985e4573905dc902f1783d8059c1efc5",
-        "strip_prefix": "zulu15.29.15-ca-jdk15.0.2-macosx_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz"
-        ]
-    },
-    "openjdk15_darwin_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk15_darwin_archive",
-        "sha256": "f80b2e0512d9d8a92be24497334c974bfecc8c898fc215ce0e76594f00437482",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz"
-        ]
-    },
-    "openjdk15_linux_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk15_linux_archive",
-        "sha256": "0a38f1138c15a4f243b75eb82f8ef40855afcc402e3c2a6de97ce8235011b1ad",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk15_windows_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk15_windows_archive",
-        "sha256": "f535a530151e6c20de8a3078057e332b08887cb3ba1a4735717357e72765cad6",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip"
-        ]
-    },
-    "openjdk_linux": {
-        "downloaded_file_path": "zulu-linux.tar.gz",
-        "name": "openjdk_linux",
-        "sha256": "65bfe4e0ffa74a680ee4410db46b17e30cd9397b664a92a886599fe1f3530969",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-linux_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689070.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64": {
-        "downloaded_file_path": "zulu-linux-aarch64.tar.gz",
-        "name": "openjdk_linux_aarch64",
-        "sha256": "6b245793087300db3ee82ab0d165614f193a73a60f2f011e347756c1e6ca5bac",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64_minimal": {
-        "downloaded_file_path": "zulu-linux-aarch64-minimal.tar.gz",
-        "name": "openjdk_linux_aarch64_minimal",
-        "sha256": "06f6520a877704c77614bcfc4f846cc7cbcbf5eaad149bf7f19f4f16e285c9de",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64_vanilla": {
-        "downloaded_file_path": "zulu-linux-aarch64-vanilla.tar.gz",
-        "name": "openjdk_linux_aarch64_vanilla",
-        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
-        ]
-    },
-    "openjdk_linux_minimal": {
-        "downloaded_file_path": "zulu-linux-minimal.tar.gz",
-        "name": "openjdk_linux_minimal",
-        "sha256": "91f7d52f695c681d4e21499b4319d548aadef249a6b3053e306308992e1e29ae",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689068.tar.gz"
-        ]
-    },
-    "openjdk_linux_ppc64le_vanilla": {
-        "downloaded_file_path": "adoptopenjdk-ppc64le-vanilla.tar.gz",
-        "name": "openjdk_linux_ppc64le_vanilla",
-        "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "openjdk_linux_s390x_vanilla": {
-        "downloaded_file_path": "adoptopenjdk-s390x-vanilla.tar.gz",
-        "name": "openjdk_linux_s390x_vanilla",
-        "sha256": "d9b72e87a1d3ebc0c9552f72ae5eb150fffc0298a7cb841f1ce7bfc70dcd1059",
-        "urls": [
-            "https://mirror.bazel.build/github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "openjdk_linux_vanilla": {
-        "downloaded_file_path": "zulu-linux-vanilla.tar.gz",
-        "name": "openjdk_linux_vanilla",
-        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk_macos_aarch64": {
-        "downloaded_file_path": "zulu-macos-aarch64.tar.gz",
-        "name": "openjdk_macos_aarch64",
-        "sha256": "a900ef793cb34b03ac5d93ea2f67291b6842e99d500934e19393a8d8f9bfa6ff",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.45.27-ca-jdk11.0.10/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64-allmodules-1611665569.tar.gz"
-        ]
-    },
-    "openjdk_macos_aarch64_minimal": {
-        "downloaded_file_path": "zulu-macos-aarch64-minimal.tar.gz",
-        "name": "openjdk_macos_aarch64_minimal",
-        "sha256": "f4f606926e6deeaa8b8397e299313d9df87642fe464b0ccf1ed0432aeb00640b",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.45.27-ca-jdk11.0.10/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64-minimal-1611665562.tar.gz"
-        ]
-    },
-    "openjdk_macos_aarch64_vanilla": {
-        "downloaded_file_path": "zulu-macos-aarch64-vanilla.tar.gz",
-        "name": "openjdk_macos_aarch64_vanilla",
-        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
-        ]
-    },
-    "openjdk_macos_x86_64": {
-        "downloaded_file_path": "zulu-macos.tar.gz",
-        "name": "openjdk_macos_x86_64",
-        "sha256": "8e283cfd23c7555be8e17295ed76eb8f00324c88ab904b8de37bbe08f90e569b",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689066.tar.gz"
-        ]
-    },
-    "openjdk_macos_x86_64_minimal": {
-        "downloaded_file_path": "zulu-macos-minimal.tar.gz",
-        "name": "openjdk_macos_x86_64_minimal",
-        "sha256": "1bacb1c07035d4066d79f0b65b4ea0ebd1954f3662bdfe3618da382ac8fd23a6",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689063.tar.gz"
-        ]
-    },
-    "openjdk_macos_x86_64_vanilla": {
-        "downloaded_file_path": "zulu-macos-vanilla.tar.gz",
-        "name": "openjdk_macos_x86_64_vanilla",
-        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
-        ]
-    },
-    "openjdk_win": {
-        "downloaded_file_path": "zulu-win.zip",
-        "name": "openjdk_win",
-        "sha256": "8e1604b3a27dcf639bc6d1a73103f1211848139e4cceb081d0a74a99e1e6f995",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip"
-        ]
-    },
-    "openjdk_win_minimal": {
-        "downloaded_file_path": "zulu-win-minimal.zip",
-        "name": "openjdk_win_minimal",
-        "sha256": "b90a713c9c2d9ea23cad44d2c2dfcc9af22faba9bde55dedc1c3bb9f556ac1ae",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip"
-        ]
-    },
-    "openjdk_win_vanilla": {
-        "downloaded_file_path": "zulu-win-vanilla.zip",
-        "name": "openjdk_win_vanilla",
-        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
-        ]
-    },
-    "platforms": {
-        "name": "platforms",
-        "sha256": "079945598e4b6cc075846f7fd6a9d0857c33a7afc0de868c2ccb96405225135d",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz",
-            "https://github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz"
-        ]
-    },
-    "platforms-0.0.4.tar.gz": {
-        "name": "platforms-0.0.4.tar.gz",
-        "sha256": "079945598e4b6cc075846f7fd6a9d0857c33a7afc0de868c2ccb96405225135d",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz",
-            "https://github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz"
-        ]
-    },
-    "remote_coverage_tools": {
-        "name": "remote_coverage_tools",
-        "sha256": "cd14f1cb4559e4723e63b7e7b06d09fcc3bd7ba58d03f354cdff1439bd936a7d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.5.zip"
-        ]
-    },
-    "remote_coverage_tools_for_testing": {
-        "name": "remote_coverage_tools_for_testing",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "cd14f1cb4559e4723e63b7e7b06d09fcc3bd7ba58d03f354cdff1439bd936a7d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.5.zip"
-        ]
-    },
-    "remote_java_tools_darwin": {
-        "generator_function": "maybe",
-        "generator_name": "remote_java_tools_darwin",
-        "name": "remote_java_tools_darwin",
-        "sha256": "64e5de2175dfccb96831573946b80d106edf3801d9db38b564514bf3581d466b",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.0/java_tools_javac11_darwin-v10.0.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.0/java_tools_javac11_darwin-v10.0.zip"
-        ]
-    },
-    "remote_java_tools_darwin_for_testing": {
-        "name": "remote_java_tools_darwin_for_testing",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "d15b05d2061382748f779dc566537ea567a46bcba6fa34b56d7cb6e6d668adab",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_darwin-v10.6.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.6/java_tools_javac11_darwin-v10.6.zip"
-        ]
-    },
-    "remote_java_tools_javac11_test_darwin": {
-        "name": "remote_java_tools_javac11_test_darwin",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "d15b05d2061382748f779dc566537ea567a46bcba6fa34b56d7cb6e6d668adab",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_darwin-v10.6.zip"
-        ]
-    },
-    "remote_java_tools_javac11_test_linux": {
-        "name": "remote_java_tools_javac11_test_linux",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "085c0ba53ba764e81d4c195524f3c596085cbf9cdc01dd8e6d2ae677e726af35",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_linux-v10.6.zip"
-        ]
-    },
-    "remote_java_tools_javac11_test_windows": {
-        "name": "remote_java_tools_javac11_test_windows",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "873f1e53d1fa9c8e46b717673816cd822bb7acc474a194a18ff849fd8fa6ff00",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_windows-v10.6.zip"
-        ]
-    },
-    "remote_java_tools_linux": {
-        "generator_function": "maybe",
-        "generator_name": "remote_java_tools_linux",
-        "name": "remote_java_tools_linux",
-        "sha256": "69e65353c2cd65780abcbcce4daae973599298273b0f8b4d469eed822cb220d1",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.0/java_tools_javac11_linux-v10.0.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.0/java_tools_javac11_linux-v10.0.zip"
-        ]
-    },
-    "remote_java_tools_linux_for_testing": {
-        "name": "remote_java_tools_linux_for_testing",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "085c0ba53ba764e81d4c195524f3c596085cbf9cdc01dd8e6d2ae677e726af35",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_linux-v10.6.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.6/java_tools_javac11_linux-v10.6.zip"
-        ]
-    },
-    "remote_java_tools_windows": {
-        "generator_function": "maybe",
-        "generator_name": "remote_java_tools_windows",
-        "name": "remote_java_tools_windows",
-        "sha256": "d2f62af8daa0a3d55789b605f6582e37038329c64843337c71e64515468e55c4",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.0/java_tools_javac11_windows-v10.0.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.0/java_tools_javac11_windows-v10.0.zip"
-        ]
-    },
-    "remote_java_tools_windows_for_testing": {
-        "name": "remote_java_tools_windows_for_testing",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "873f1e53d1fa9c8e46b717673816cd822bb7acc474a194a18ff849fd8fa6ff00",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_windows-v10.6.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.6/java_tools_javac11_windows-v10.6.zip"
-        ]
-    },
-    "remotejdk11_linux": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_linux",
-        "name": "remotejdk11_linux",
-        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_aarch64": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_linux_aarch64",
-        "name": "remotejdk11_linux_aarch64",
-        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
-        "strip_prefix": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_aarch64_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_linux_aarch64_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
-        "strip_prefix": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_linux_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_ppc64le": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_linux_ppc64le",
-        "name": "remotejdk11_linux_ppc64le",
-        "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
-        "strip_prefix": "jdk-11.0.7+10",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_ppc64le_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_linux_ppc64le_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
-        "strip_prefix": "jdk-11.0.7+10",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_s390x": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_linux_s390x",
-        "name": "remotejdk11_linux_s390x",
-        "sha256": "d9b72e87a1d3ebc0c9552f72ae5eb150fffc0298a7cb841f1ce7bfc70dcd1059",
-        "strip_prefix": "jdk-11.0.7+10",
-        "urls": [
-            "https://mirror.bazel.build/github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_s390x_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_linux_s390x_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "d9b72e87a1d3ebc0c9552f72ae5eb150fffc0298a7cb841f1ce7bfc70dcd1059",
-        "strip_prefix": "jdk-11.0.7+10",
-        "urls": [
-            "https://mirror.bazel.build/github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "remotejdk11_macos": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_macos",
-        "name": "remotejdk11_macos",
-        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
-        ]
-    },
-    "remotejdk11_macos_aarch64_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_macos_aarch64_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
-        "strip_prefix": "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
-        ]
-    },
-    "remotejdk11_macos_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_macos_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
-        ]
-    },
-    "remotejdk11_win": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_win",
-        "name": "remotejdk11_win",
-        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
-        ]
-    },
-    "remotejdk11_win_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_win_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
-        ]
-    },
-    "remotejdk14_linux": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk14_linux",
-        "name": "remotejdk14_linux",
-        "sha256": "48bb8947034cd079ad1ef83335e7634db4b12a26743a0dc314b6b861480777aa",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "remotejdk14_linux_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk14_linux_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "48bb8947034cd079ad1ef83335e7634db4b12a26743a0dc314b6b861480777aa",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "remotejdk14_macos": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk14_macos",
-        "name": "remotejdk14_macos",
-        "sha256": "088bd4d0890acc9f032b738283bf0f26b2a55c50b02d1c8a12c451d8ddf080dd",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-macosx_x64.tar.gz"
-        ]
-    },
-    "remotejdk14_macos_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk14_macos_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "088bd4d0890acc9f032b738283bf0f26b2a55c50b02d1c8a12c451d8ddf080dd",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-macosx_x64.tar.gz"
-        ]
-    },
-    "remotejdk14_win": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk14_win",
-        "name": "remotejdk14_win",
-        "sha256": "9cb078b5026a900d61239c866161f0d9558ec759aa15c5b4c7e905370e868284",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-win_x64.zip"
-        ]
-    },
-    "remotejdk14_win_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk14_win_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "9cb078b5026a900d61239c866161f0d9558ec759aa15c5b4c7e905370e868284",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-win_x64.zip"
-        ]
-    },
-    "remotejdk15_linux_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk15_linux_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "0a38f1138c15a4f243b75eb82f8ef40855afcc402e3c2a6de97ce8235011b1ad",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz"
-        ]
-    },
-    "remotejdk15_macos_aarch64_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk15_macos_aarch64_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "2613c3f15eef6b6ecd0fd102da92282b985e4573905dc902f1783d8059c1efc5",
-        "strip_prefix": "zulu15.29.15-ca-jdk15.0.2-macosx_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz"
-        ]
-    },
-    "remotejdk15_macos_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk15_macos_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "f80b2e0512d9d8a92be24497334c974bfecc8c898fc215ce0e76594f00437482",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz"
-        ]
-    },
-    "remotejdk15_win_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk15_win_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "f535a530151e6c20de8a3078057e332b08887cb3ba1a4735717357e72765cad6",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip"
-        ]
-    },
-    "rules_cc": {
-        "name": "rules_cc",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd",
-        "strip_prefix": "rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip",
-            "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip"
-        ]
-    },
-    "rules_java": {
-        "name": "rules_java",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
-        "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
-        ]
-    },
-    "rules_nodejs-2.2.2.tar.gz": {
-        "name": "rules_nodejs-2.2.2.tar.gz",
-        "sha256": "f2194102720e662dbf193546585d705e645314319554c6ce7e47d8b59f459e9c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/2.2.2/rules_nodejs-2.2.2.tar.gz",
-            "https://github.com/bazelbuild/rules_nodejs/releases/download/2.2.2/rules_nodejs-2.2.2.tar.gz"
-        ]
-    },
-    "rules_pkg": {
-        "name": "rules_pkg",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "4ba8f4ab0ff85f2484287ab06c0d871dcb31cc54d439457d28fd4ae14b18450a",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz",
-            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz"
-        ]
-    },
-    "rules_pkg-0.2.4.tar.gz": {
-        "name": "rules_pkg-0.2.4.tar.gz",
-        "sha256": "4ba8f4ab0ff85f2484287ab06c0d871dcb31cc54d439457d28fd4ae14b18450a",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz",
-            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz"
-        ]
-    },
-    "rules_proto": {
-        "name": "rules_proto",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "8e7d59a5b12b233be5652e3d29f42fba01c7cbab09f6b3a8d0a57ed6d1e9a0da",
-        "strip_prefix": "rules_proto-7e4afce6fe62dbff0a4a03450143146f9f2d7488",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz",
-            "https://github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz"
-        ]
-    },
-    "six": {
-        "build_file": "@com_github_grpc_grpc//third_party:six.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "six",
-        "name": "six",
-        "sha256": "d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73",
-        "urls": [
-            "https://files.pythonhosted.org/packages/dd/bf/4138e7bfb757de47d1f4b6994648ec67a51efe58fa907c1e11e350cddfca/six-1.12.0.tar.gz"
-        ]
-    },
-    "upb": {
-        "generator_function": "grpc_deps",
-        "generator_name": "upb",
-        "name": "upb",
-        "sha256": "7992217989f3156f8109931c1fc6db3434b7414957cb82371552377beaeb9d6c",
-        "strip_prefix": "upb-382d5afc60e05470c23e8de19b19fc5ad231e732",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
-            "https://github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz"
-        ]
-    },
-    "v1.33.1.tar.gz": {
-        "name": "v1.33.1.tar.gz",
-        "sha256": "58eaee5c0f1bd0b92ebe1fa0606ec8f14798500620e7444726afcaf65041cb63",
-        "urls": [
-            "https://mirror.bazel.build/github.com/grpc/grpc/archive/v1.33.1.tar.gz",
-            "https://github.com/grpc/grpc/archive/v1.33.1.tar.gz"
-        ]
-    },
-    "v3.13.0.tar.gz": {
-        "name": "v3.13.0.tar.gz",
-        "sha256": "9b4ee22c250fe31b16f1a24d61467e40780a3fbb9b91c3b65be2a376ed913a1a",
-        "urls": [
-            "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz",
-            "https://github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz"
-        ]
-    },
-    "zlib": {
-        "build_file": "@com_github_grpc_grpc//third_party:zlib.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "zlib",
-        "name": "zlib",
-        "sha256": "6d4d6640ca3121620995ee255945161821218752b551a1a180f4215f7d124d45",
-        "strip_prefix": "zlib-cacf7f1d4e3d44d871b605da3b647f07d718623f",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/madler/zlib/archive/cacf7f1d4e3d44d871b605da3b647f07d718623f.tar.gz",
-            "https://github.com/madler/zlib/archive/cacf7f1d4e3d44d871b605da3b647f07d718623f.tar.gz"
-        ]
-    },
-    "zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz": {
-        "name": "zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz",
-        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
-        ]
-    },
-    "zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz": {
-        "name": "zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz",
-        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
-        ]
-    },
-    "zulu11.37.17-ca-jdk11.0.6-win_x64.zip": {
-        "name": "zulu11.37.17-ca-jdk11.0.6-win_x64.zip",
-        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
-        ]
-    },
-    "zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz": {
-        "name": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz",
-        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
-        ]
-    },
-    "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz": {
-        "name": "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
-        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
-        ]
-    }
-}
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/upb-clang16.patch b/pkgs/development/tools/build-managers/bazel/bazel_4/upb-clang16.patch
deleted file mode 100644
index 34bb71747b17..000000000000
--- a/pkgs/development/tools/build-managers/bazel/bazel_4/upb-clang16.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git a/WORKSPACE b/WORKSPACE
-index 2d995f095e..55fddef663 100644
---- a/WORKSPACE
-+++ b/WORKSPACE
-@@ -1232,7 +1232,7 @@ register_toolchains("//src/main/res:empty_rc_toolchain")
- http_archive(
-     name = "com_github_grpc_grpc",
-     patch_args = ["-p1"],
--    patches = ["//third_party/grpc:grpc_1.33.1.patch"],
-+    patches = ["//third_party/grpc:grpc_1.33.1.patch", "//:grpc-upb-clang16.patch"],
-     sha256 = "58eaee5c0f1bd0b92ebe1fa0606ec8f14798500620e7444726afcaf65041cb63",
-     strip_prefix = "grpc-1.33.1",
-     urls = [
-diff --git a/grpc-upb-clang16.patch b/grpc-upb-clang16.patch
-new file mode 100644
-index 0000000000..ae6a7ad0e0
---- /dev/null
-+++ b/grpc-upb-clang16.patch
-@@ -0,0 +1,13 @@
-+diff -r -u a/bazel/grpc_deps.bzl b/bazel/grpc_deps.bzl
-+--- a/bazel/grpc_deps.bzl
-++++ b/bazel/grpc_deps.bzl
-+@@ -285,6 +285,8 @@
-+             name = "upb",
-+             sha256 = "7992217989f3156f8109931c1fc6db3434b7414957cb82371552377beaeb9d6c",
-+             strip_prefix = "upb-382d5afc60e05470c23e8de19b19fc5ad231e732",
-++            patches = ["//:upb-clang16.patch"],
-++            patch_args = ["-p1"],
-+             urls = [
-+                 "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
-+                 "https://github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
-+
-diff --git a/upb-clang16.patch b/upb-clang16.patch
-new file mode 100644
-index 0000000000..b799737fac
---- /dev/null
-+++ b/upb-clang16.patch
-@@ -0,0 +1,18 @@
-+--- a/BUILD
-++++ b/BUILD
-+@@ -34,6 +34,7 @@
-+     "-Wextra",
-+     # "-Wshorten-64-to-32",  # not in GCC (and my Kokoro images doesn't have Clang)
-+     "-Werror",
-++    "-Wno-gnu-offsetof-extensions",
-+     "-Wno-long-long",
-+     # copybara:strip_end
-+ ]
-+@@ -42,6 +43,7 @@
-+     # copybara:strip_for_google3_begin
-+     "-pedantic",
-+     "-Werror=pedantic",
-++    "-Wno-gnu-offsetof-extensions",
-+     "-Wstrict-prototypes",
-+     # copybara:strip_end
-+ ]
-
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/update-srcDeps.py b/pkgs/development/tools/build-managers/bazel/bazel_4/update-srcDeps.py
deleted file mode 100755
index 9e998e05875e..000000000000
--- a/pkgs/development/tools/build-managers/bazel/bazel_4/update-srcDeps.py
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env python3
-import sys
-import json
-
-if len(sys.argv) != 2:
-    print("usage: ./this-script src-deps.json < WORKSPACE", file=sys.stderr)
-    print("Takes the bazel WORKSPACE file and reads all archives into a json dict (by evaling it as python code)", file=sys.stderr)
-    print("Hail Eris.", file=sys.stderr)
-    sys.exit(1)
-
-http_archives = []
-
-# just the kw args are the dict { name, sha256, urls … }
-def http_archive(**kw):
-    http_archives.append(kw)
-# like http_file
-def http_file(**kw):
-    http_archives.append(kw)
-
-# this is inverted from http_archive/http_file and bundles multiple archives
-def distdir_tar(**kw):
-    for archive_name in kw['archives']:
-        http_archives.append({
-            "name": archive_name,
-            "sha256": kw['sha256'][archive_name],
-            "urls": kw['urls'][archive_name]
-        })
-
-# TODO?
-def git_repository(**kw):
-    print(json.dumps(kw, sort_keys=True, indent=4), file=sys.stderr)
-    sys.exit(1)
-
-# execute the WORKSPACE like it was python code in this module,
-# using all the function stubs from above.
-exec(sys.stdin.read())
-
-# transform to a dict with the names as keys
-d = { el['name']: el for el in http_archives }
-
-def has_urls(el):
-    return ('url' in el and el['url']) or ('urls' in el and el['urls'])
-def has_sha256(el):
-    return 'sha256' in el and el['sha256']
-bad_archives = list(filter(lambda el: not has_urls(el) or not has_sha256(el), d.values()))
-if bad_archives:
-    print('Following bazel dependencies are missing url or sha256', file=sys.stderr)
-    print('Check bazel sources for master or non-checksummed dependencies', file=sys.stderr)
-    for el in bad_archives:
-        print(json.dumps(el, sort_keys=True, indent=4), file=sys.stderr)
-    sys.exit(1)
-
-with open(sys.argv[1], "w") as f:
-    print(json.dumps(d, sort_keys=True, indent=4), file=f)
diff --git a/pkgs/development/tools/rust/cargo-deny/default.nix b/pkgs/development/tools/rust/cargo-deny/default.nix
index c3bc211a9c0e..0d7edc5227fb 100644
--- a/pkgs/development/tools/rust/cargo-deny/default.nix
+++ b/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deny";
-  version = "0.14.15";
+  version = "0.14.16";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = "cargo-deny";
     rev = version;
-    hash = "sha256-soDLgxEbeNk8mQHwUzBZK5QqTURzXQKZb2LtJA6fnhc=";
+    hash = "sha256-Evvr9In/ny+yQP77u47uTCWCtRqg/l9B5y79va8oMbw=";
   };
 
-  cargoHash = "sha256-XblrLV3AMmFFXOr3K/Sq4Vb6MknI7H92H/bDvUEUOko=";
+  cargoHash = "sha256-JgI4Tbl0C0lJEOMRwVjo9h6fuUL0u0mICGLsx8/0dMc=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/misc/scrcpy/default.nix b/pkgs/misc/scrcpy/default.nix
index a1c8fb43c20f..6f2fde718dce 100644
--- a/pkgs/misc/scrcpy/default.nix
+++ b/pkgs/misc/scrcpy/default.nix
@@ -16,12 +16,12 @@
 }:
 
 let
-  version = "2.3.1";
+  version = "2.4";
   prebuilt_server = fetchurl {
     name = "scrcpy-server";
     inherit version;
     url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}";
-    hash = "sha256-9oFIIvwwinpTLyU0hckDgYPGKWpsXfRwqeODtPjnYFs=";
+    hash = "sha256-k8Jyt0OGBcBV4Sf3REBk7Xj6nKSfgRVnd/0gHnnOe6M=";
   };
 in
 stdenv.mkDerivation rec {
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     owner = "Genymobile";
     repo = "scrcpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RM29WjzsYnn26x/Xr2RKp0p87/v+Jl8skEcAwxhZEtU=";
+    hash = "sha256-x1feZgCR3ZUi40/YZSjDULYk4W9Pjo17cn8RqcOoeoE=";
   };
 
   #   display.c: When run without a hardware accelerator, this allows the command to continue working rather than failing unexpectedly.
diff --git a/pkgs/os-specific/linux/ch9344/default.nix b/pkgs/os-specific/linux/ch9344/default.nix
index e7da864b90c1..42c26503ea15 100644
--- a/pkgs/os-specific/linux/ch9344/default.nix
+++ b/pkgs/os-specific/linux/ch9344/default.nix
@@ -2,20 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "ch9344";
-  version = "1.9";
+  version = "2.0";
 
   src = fetchzip {
     name = "CH9344SER_LINUX.zip";
     url = "https://www.wch.cn/downloads/file/386.html#CH9344SER_LINUX.zip";
-    hash = "sha256-g55ftAfjKKlUFzGhI1a/O7Eqbz6rkGf1vWuEJjBZxBE=";
+    hash = "sha256-YKNMYpap7CjhgTIpd/M9+nB11NtpwGYT/P14J6q3XZg=";
   };
 
-  patches = lib.optionals (lib.versionAtLeast kernel.modDirVersion "6.1") [
-    # https://github.com/torvalds/linux/commit/a8c11c1520347be74b02312d10ef686b01b525f1
+  patches = [
     ./fix-incompatible-pointer-types.patch
-  ] ++ lib.optionals (lib.versionAtLeast kernel.modDirVersion "6.3") [
-    # https://github.com/torvalds/linux/commit/5d420399073770134d2b03e004b2c0201c7fa26f
-    ./fix-incompatible-pointer-types_6_3.patch
   ];
 
   sourceRoot = "${src.name}/driver";
diff --git a/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch b/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch
index 31088538733e..89c95347ed65 100644
--- a/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch
+++ b/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch
@@ -1,22 +1,16 @@
 diff --git a/ch9344.c b/ch9344.c
-index 1e37293..a16af82 100644
+index bfa10bb..76a94a7 100644
 --- a/ch9344.c
 +++ b/ch9344.c
-@@ -79,7 +79,7 @@ static DEFINE_IDR(ch9344_minors);
- static DEFINE_MUTEX(ch9344_minors_lock);
- 
- static void ch9344_tty_set_termios(struct tty_struct *tty,
--                                   struct ktermios *termios_old);
-+                                   const struct ktermios *termios_old);
- 
- static int ch9344_get_portnum(int index);
- 
-@@ -1597,7 +1597,7 @@ u8 cal_recv_tmt(__le32 bd)
+@@ -837,7 +837,11 @@ static void ch9344_tty_close(struct tty_struct *tty, struct file *filp)
+ 	}
  }
  
- static void ch9344_tty_set_termios(struct tty_struct *tty,
--                                   struct ktermios *termios_old)
-+                                   const struct ktermios *termios_old)
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 6, 0))
++static ssize_t ch9344_tty_write(struct tty_struct *tty, const u8 *buf, size_t count)
++#else
+ static int ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, int count)
++#endif
  {
-     struct ch9344 *ch9344 = tty->driver_data;
-     struct ktermios *termios = &tty->termios;
+ 	struct ch9344 *ch9344 = tty->driver_data;
+ 	int stat;
diff --git a/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch b/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch
deleted file mode 100644
index b4cf265daac9..000000000000
--- a/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/ch9344.c b/ch9344.c
-index a16af82..8922ed9 100644
---- a/ch9344.c
-+++ b/ch9344.c
-@@ -774,7 +774,7 @@ static inline void *tty_get_portdata(struct ch9344_ttyport *port)
-     return (port->portdata);
- }
- 
--static void ch9344_port_dtr_rts(struct tty_port *port, int raise)
-+static void ch9344_port_dtr_rts(struct tty_port *port, bool raise)
- {
-     struct ch9344_ttyport *ttyport = container_of(port, struct ch9344_ttyport, port);
-     struct ch9344 *ch9344 = tty_get_portdata(ttyport);
diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix
index f7f513e21f60..d8261beb1764 100644
--- a/pkgs/os-specific/linux/kernel/zen-kernels.nix
+++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix
@@ -4,9 +4,9 @@ let
   # comments with variant added for update script
   # ./update-zen.py zen
   zenVariant = {
-    version = "6.7.9"; #zen
+    version = "6.8"; #zen
     suffix = "zen1"; #zen
-    sha256 = "0g20hx5jhs99gm7bc3b99x6cg3hkx6r91dnxjzbplinzgh2kp0pz"; #zen
+    sha256 = "19rsi8747xw5lsq4pwizq2va6inmwrywgy8b5f2ppcd6ny0whn1i"; #zen
     isLqx = false;
   };
   # ./update-zen.py lqx
diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix
index 0dbfbd29b6c3..302404b38e12 100644
--- a/pkgs/os-specific/linux/sysdig/default.nix
+++ b/pkgs/os-specific/linux/sysdig/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, kernel, installShellFiles, pkg-config
 , luajit, ncurses, perl, jsoncpp, openssl, curl, jq, gcc, elfutils, tbb, protobuf, grpc
-, yaml-cpp, nlohmann_json, re2, zstd, uthash, fetchpatch, fetchurl
+, yaml-cpp, nlohmann_json, re2, zstd, uthash
 }:
 
 let
@@ -26,13 +26,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "sysdig";
-  version = "0.35.1";
+  version = "0.35.3";
 
   src = fetchFromGitHub {
     owner = "draios";
     repo = "sysdig";
     rev = version;
-    hash = "sha256-nSCkKwhdEduepyvcyWEKMQtQ6TfhF3GnTSreRVoarsw=";
+    hash = "sha256-wvCnWzQbkkM8qEG93li22P67WX1bGX9orTk+2vsBHZY=";
   };
 
   nativeBuildInputs = [ cmake perl installShellFiles pkg-config ];
diff --git a/pkgs/servers/gotosocial/default.nix b/pkgs/servers/gotosocial/default.nix
index 3113ed59fc2e..4b2808138003 100644
--- a/pkgs/servers/gotosocial/default.nix
+++ b/pkgs/servers/gotosocial/default.nix
@@ -9,11 +9,11 @@ let
   owner = "superseriousbusiness";
   repo = "gotosocial";
 
-  version = "0.13.3";
+  version = "0.14.1";
 
   web-assets = fetchurl {
     url = "https://github.com/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz";
-    hash = "sha256-xC1Acm/CJHXTblV8E63vZB+r/ktBH7EytL7x4eWGko8=";
+    hash = "sha256-cNO0LuTzgx3CAP+qjTBZ9Fgs4jrH3ypZREpKKipOJDA=";
   };
 in
 buildGoModule rec {
@@ -23,7 +23,7 @@ buildGoModule rec {
   src = fetchFromGitHub {
     inherit owner repo;
     rev = "refs/tags/v${version}";
-    hash = "sha256-zjmIa25veVL0ruFow4c1oV+VtgJGgWrRL99GPdaNc4g";
+    hash = "sha256-gXriCpLPFBzIWm0xKE2LdT3+VWLNwJAHtT9ZuYO3sDI=";
   };
 
   vendorHash = null;
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index b9fc857f211c..78fbdbadeae2 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -5265,7 +5265,8 @@
     ];
     "tuya" = ps: with ps; [
       ha-ffmpeg
-    ]; # missing inputs: tuya-device-sharing-sdk
+      tuya-device-sharing-sdk
+    ];
     "twentemilieu" = ps: with ps; [
       twentemilieu
     ];
@@ -6574,6 +6575,7 @@
     "transport_nsw"
     "trend"
     "tts"
+    "tuya"
     "twentemilieu"
     "twilio"
     "twinkly"
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index 5ff1510f2351..4a54f351ac49 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -1,5 +1,5 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ packaging rich ])" -p nodePackages.pyright ruff isort"
+#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ packaging rich ])" -p nodePackages.pyright ruff isort
 #
 # This script downloads Home Assistant's source tarball.
 # Inside the homeassistant/components directory, each integration has an associated manifest.json,
diff --git a/pkgs/servers/reproxy/default.nix b/pkgs/servers/reproxy/default.nix
deleted file mode 100644
index 21077aa83d1c..000000000000
--- a/pkgs/servers/reproxy/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub }:
-
-buildGoModule rec {
-  pname = "reproxy";
-  version = "1.0.0";
-
-  src = fetchFromGitHub {
-    owner = "umputun";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-ac4fOOMht2WGlrXLN95NEIA8ivqghhVuxHnBumvajx0=";
-  };
-
-  postPatch = ''
-    # Requires network access
-    substituteInPlace app/main_test.go \
-      --replace "Test_Main" "Skip_Main"
-    substituteInPlace app/proxy/proxy_test.go \
-      --replace "TestHttp_matchHandler" "SkipHttp_matchHandler"
-  '' + lib.optionalString stdenv.isDarwin ''
-    # Fails on Darwin.
-    # https://github.com/umputun/reproxy/issues/77
-    substituteInPlace app/discovery/provider/file_test.go \
-      --replace "TestFile_Events" "SkipFile_Events" \
-      --replace "TestFile_Events_BusyListener" "SkipFile_Events_BusyListener"
-  '';
-
-  vendorHash = null;
-
-  ldflags = [
-    "-s" "-w" "-X main.revision=${version}"
-  ];
-
-  installPhase = ''
-    install -Dm755 $GOPATH/bin/app $out/bin/reproxy
-  '';
-
-  meta = with lib; {
-    description = "Simple edge server / reverse proxy";
-    homepage = "https://reproxy.io/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ sikmir ];
-    mainProgram = "reproxy";
-  };
-}
diff --git a/pkgs/servers/sql/postgresql/ext/pgvecto-rs/0001-read-clang-flags-from-environment.diff b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/0001-read-clang-flags-from-environment.diff
new file mode 100644
index 000000000000..2b145445cf15
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/0001-read-clang-flags-from-environment.diff
@@ -0,0 +1,19 @@
+diff --git a/crates/c/build.rs b/crates/c/build.rs
+index 8d822e5..8b7e371 100644
+--- a/crates/c/build.rs
++++ b/crates/c/build.rs
+@@ -1,9 +1,13 @@
+ fn main() {
+     println!("cargo:rerun-if-changed=src/c.h");
+     println!("cargo:rerun-if-changed=src/c.c");
++    println!("cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS");
+     cc::Build::new()
+-        .compiler("clang-16")
++        .compiler("@clang@")
+         .file("./src/c.c")
++        // read env var set by rustPlatform.bindgenHook
++        .try_flags_from_environment("BINDGEN_EXTRA_CLANG_ARGS")
++        .expect("the BINDGEN_EXTRA_CLANG_ARGS environment variable must be specified and UTF-8")
+         .opt_level(3)
+         .debug(true)
+         .compile("pgvectorsc");
diff --git a/pkgs/servers/sql/postgresql/ext/pgvecto-rs/Cargo.lock b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/Cargo.lock
new file mode 100644
index 000000000000..a52b9787460e
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/Cargo.lock
@@ -0,0 +1,3626 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+
+[[package]]
+name = "anyhow"
+version = "1.0.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9"
+
+[[package]]
+name = "arc-swap"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "ascii-canvas"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6"
+dependencies = [
+ "term",
+]
+
+[[package]]
+name = "assert-json-diff"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
+dependencies = [
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "async-channel"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 2.5.3",
+ "futures-core",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 4.0.1",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
+dependencies = [
+ "async-lock 3.2.0",
+ "async-task",
+ "concurrent-queue",
+ "fastrand 2.0.1",
+ "futures-lite 2.1.0",
+ "slab",
+]
+
+[[package]]
+name = "async-global-executor"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
+dependencies = [
+ "async-channel 2.1.1",
+ "async-executor",
+ "async-io 2.2.2",
+ "async-lock 3.2.0",
+ "blocking",
+ "futures-lite 2.1.0",
+ "once_cell",
+]
+
+[[package]]
+name = "async-io"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
+dependencies = [
+ "async-lock 2.8.0",
+ "autocfg",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-lite 1.13.0",
+ "log",
+ "parking",
+ "polling 2.8.0",
+ "rustix 0.37.27",
+ "slab",
+ "socket2 0.4.10",
+ "waker-fn",
+]
+
+[[package]]
+name = "async-io"
+version = "2.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7"
+dependencies = [
+ "async-lock 3.2.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.1.0",
+ "parking",
+ "polling 3.3.1",
+ "rustix 0.38.28",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+dependencies = [
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c"
+dependencies = [
+ "event-listener 4.0.1",
+ "event-listener-strategy",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-object-pool"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aeb901c30ebc2fc4ab46395bbfbdba9542c16559d853645d75190c3056caf3bc"
+dependencies = [
+ "async-std",
+]
+
+[[package]]
+name = "async-process"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
+dependencies = [
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-signal",
+ "blocking",
+ "cfg-if",
+ "event-listener 3.1.0",
+ "futures-lite 1.13.0",
+ "rustix 0.38.28",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+dependencies = [
+ "async-io 2.2.2",
+ "async-lock 2.8.0",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.28",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-std"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+dependencies = [
+ "async-channel 1.9.0",
+ "async-global-executor",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-process",
+ "crossbeam-utils",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-lite 1.13.0",
+ "gloo-timers",
+ "kv-log-macro",
+ "log",
+ "memchr",
+ "once_cell",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "async-task"
+version = "4.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46"
+
+[[package]]
+name = "async-trait"
+version = "0.1.75"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "atomic-polyfill"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4"
+dependencies = [
+ "critical-section",
+]
+
+[[package]]
+name = "atomic-traits"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b29ec3788e96fb4fdb275ccb9d62811f2fa903d76c5eb4dd6fe7d09a7ed5871f"
+dependencies = [
+ "cfg-if",
+ "rustc_version 0.3.3",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.21.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+
+[[package]]
+name = "basic-cookies"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb53b6b315f924c7f113b162e53b3901c05fc9966baf84d201dfcc7432a4bb38"
+dependencies = [
+ "lalrpop",
+ "lalrpop-util",
+ "regex",
+]
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bindgen"
+version = "0.68.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
+dependencies = [
+ "bitflags 2.4.1",
+ "cexpr",
+ "clang-sys",
+ "lazy_static",
+ "lazycell",
+ "peeking_take_while",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "blocking"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+dependencies = [
+ "async-channel 2.1.1",
+ "async-lock 3.2.0",
+ "async-task",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-lite 2.1.0",
+ "piper",
+ "tracing",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+
+[[package]]
+name = "bytemuck"
+version = "1.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "c"
+version = "0.0.0"
+dependencies = [
+ "cc",
+ "detect",
+ "half 2.3.1",
+ "rand",
+]
+
+[[package]]
+name = "cargo_toml"
+version = "0.16.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3f9629bc6c4388ea699781dc988c2b99766d7679b151c81990b4fa1208fafd3"
+dependencies = [
+ "serde",
+ "toml",
+]
+
+[[package]]
+name = "castaway"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
+
+[[package]]
+name = "cc"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "cexpr"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+dependencies = [
+ "nom",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clang-sys"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading",
+]
+
+[[package]]
+name = "clap"
+version = "4.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap-cargo"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25122ca6ebad5f53578c26638afd9f0160426969970dc37ec6c363ff6b082ebd"
+dependencies = [
+ "clap",
+ "doc-comment",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9"
+dependencies = [
+ "anstyle",
+ "clap_lex",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+
+[[package]]
+name = "concurrent-queue"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "convert_case"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "critical-section"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216"
+
+[[package]]
+name = "crossbeam"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6eb9105919ca8e40d437fc9cbb8f1975d916f1bd28afe795a48aae32a2cc8920"
+dependencies = [
+ "cfg-if",
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adc6598521bb5a83d491e8c1fe51db7296019d2ca3cb93cc6c2a20369a4d78a2"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "ctor"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
+dependencies = [
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "cty"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
+
+[[package]]
+name = "curl"
+version = "0.4.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22"
+dependencies = [
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2 0.4.10",
+ "winapi",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.70+curl-8.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c0333d8849afe78a4c8102a429a446bfdd055832af071945520e835ae2d841e"
+dependencies = [
+ "cc",
+ "libc",
+ "libnghttp2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "detect"
+version = "0.0.0"
+dependencies = [
+ "ctor",
+ "rustix 0.38.28",
+ "std_detect",
+]
+
+[[package]]
+name = "diff"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
+name = "downcast"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1"
+
+[[package]]
+name = "either"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+
+[[package]]
+name = "ena"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "enum-map"
+version = "2.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9"
+dependencies = [
+ "enum-map-derive",
+]
+
+[[package]]
+name = "enum-map-derive"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
+dependencies = [
+ "humantime",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "event-listener"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+[[package]]
+name = "event-listener"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "4.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.1",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "eyre"
+version = "0.6.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6267a1fa6f59179ea4afc8e50fd8612a3cc60bc858f786ff877a4a8cb042799"
+dependencies = [
+ "indenter",
+ "once_cell",
+]
+
+[[package]]
+name = "fallible-iterator"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "finl_unicode"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6"
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "flate2"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "fragile"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
+
+[[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-lite"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
+dependencies = [
+ "fastrand 1.9.0",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+ "waker-fn",
+]
+
+[[package]]
+name = "futures-lite"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143"
+dependencies = [
+ "fastrand 2.0.1",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-core",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "gloo-timers"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "half"
+version = "1.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+
+[[package]]
+name = "half"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+dependencies = [
+ "bytemuck",
+ "cfg-if",
+ "crunchy",
+ "num-traits",
+ "rand",
+ "rand_distr",
+ "serde",
+]
+
+[[package]]
+name = "hash32"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "heapless"
+version = "0.7.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f"
+dependencies = [
+ "atomic-polyfill",
+ "hash32",
+ "rustc_version 0.4.0",
+ "spin",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "http"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "httpmock"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b02e044d3b4c2f94936fb05f9649efa658ca788f44eb6b87554e2033fc8ce93"
+dependencies = [
+ "assert-json-diff",
+ "async-object-pool",
+ "async-trait",
+ "base64",
+ "basic-cookies",
+ "crossbeam-utils",
+ "form_urlencoded",
+ "futures-util",
+ "hyper",
+ "isahc",
+ "lazy_static",
+ "levenshtein",
+ "log",
+ "regex",
+ "serde",
+ "serde_json",
+ "serde_regex",
+ "similar",
+ "tokio",
+ "url",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "hyper"
+version = "0.14.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2 0.5.5",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "idna"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "if_chain"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
+
+[[package]]
+name = "indenter"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
+
+[[package]]
+name = "indexmap"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
+dependencies = [
+ "hermit-abi",
+ "rustix 0.38.28",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "isahc"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9"
+dependencies = [
+ "async-channel 1.9.0",
+ "castaway",
+ "crossbeam-utils",
+ "curl",
+ "curl-sys",
+ "encoding_rs",
+ "event-listener 2.5.3",
+ "futures-lite 1.13.0",
+ "http",
+ "log",
+ "mime",
+ "once_cell",
+ "polling 2.8.0",
+ "slab",
+ "sluice",
+ "tracing",
+ "tracing-futures",
+ "url",
+ "waker-fn",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "js-sys"
+version = "0.3.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "kv-log-macro"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "lalrpop"
+version = "0.19.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a1cbf952127589f2851ab2046af368fd20645491bb4b376f04b7f94d7a9837b"
+dependencies = [
+ "ascii-canvas",
+ "bit-set",
+ "diff",
+ "ena",
+ "is-terminal",
+ "itertools 0.10.5",
+ "lalrpop-util",
+ "petgraph",
+ "regex",
+ "regex-syntax 0.6.29",
+ "string_cache",
+ "term",
+ "tiny-keccak",
+ "unicode-xid",
+]
+
+[[package]]
+name = "lalrpop-util"
+version = "0.19.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3c48237b9604c5a4702de6b824e02006c3214327564636aef27c1028a8fa0ed"
+dependencies = [
+ "regex",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[package]]
+name = "levenshtein"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760"
+
+[[package]]
+name = "libc"
+version = "0.2.151"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
+
+[[package]]
+name = "libloading"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+dependencies = [
+ "cfg-if",
+ "winapi",
+]
+
+[[package]]
+name = "libm"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[package]]
+name = "libnghttp2-sys"
+version = "0.1.8+1.55.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fae956c192dadcdb5dace96db71fa0b827333cce7c7b38dc71446f024d8a340"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+dependencies = [
+ "value-bag",
+]
+
+[[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+dependencies = [
+ "cfg-if",
+ "digest",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[package]]
+name = "memmap2"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "mockall"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48"
+dependencies = [
+ "cfg-if",
+ "downcast",
+ "fragile",
+ "lazy_static",
+ "mockall_derive",
+ "predicates",
+ "predicates-tree",
+]
+
+[[package]]
+name = "mockall_derive"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2"
+dependencies = [
+ "cfg-if",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "multiversion"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2c7b9d7fe61760ce5ea19532ead98541f6b4c495d87247aff9826445cf6872a"
+dependencies = [
+ "multiversion-macros",
+ "target-features",
+]
+
+[[package]]
+name = "multiversion-macros"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26a83d8500ed06d68877e9de1dde76c1dbb83885dcdbda4ef44ccbc3fbda2ac8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "target-features",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "ntapi"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+dependencies = [
+ "autocfg",
+ "libm",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "openai_api_rust"
+version = "0.1.8"
+source = "git+https://github.com/tensorchord/openai-api.git?rev=228d54b6002e98257b3c81501a054942342f585f#228d54b6002e98257b3c81501a054942342f585f"
+dependencies = [
+ "log",
+ "mime",
+ "rand",
+ "serde",
+ "serde_json",
+ "ureq",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "owo-colors"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
+
+[[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "pathsearch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da983bc5e582ab17179c190b4b66c7d76c5943a69c6d34df2a2b6bf8a2977b05"
+dependencies = [
+ "anyhow",
+ "libc",
+]
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "pest"
+version = "2.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
+dependencies = [
+ "memchr",
+ "thiserror",
+ "ucd-trie",
+]
+
+[[package]]
+name = "petgraph"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
+dependencies = [
+ "fixedbitset",
+ "indexmap",
+]
+
+[[package]]
+name = "pgrx"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb44171122605250e719ca2ae49afb357bdb2fce4b3c876fcf2225165237328a"
+dependencies = [
+ "atomic-traits",
+ "bitflags 2.4.1",
+ "bitvec",
+ "enum-map",
+ "heapless",
+ "libc",
+ "once_cell",
+ "pgrx-macros",
+ "pgrx-pg-sys",
+ "pgrx-sql-entity-graph",
+ "seahash",
+ "seq-macro",
+ "serde",
+ "serde_cbor",
+ "serde_json",
+ "thiserror",
+ "uuid",
+]
+
+[[package]]
+name = "pgrx-macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a18ac8628b7de2f29a93d0abdbdcaee95a0e0ef4b59fd4de99cc117e166e843b"
+dependencies = [
+ "pgrx-sql-entity-graph",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "pgrx-pg-config"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acd45ac6eb1142c5690df63c4e0bdfb74f27c9f93a7af84f064dc2c0a2c2d6f7"
+dependencies = [
+ "cargo_toml",
+ "dirs",
+ "eyre",
+ "owo-colors",
+ "pathsearch",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "toml",
+ "url",
+]
+
+[[package]]
+name = "pgrx-pg-sys"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81c6207939582934fc26fceb651cb5338e363c06ddc6b2d50ca71867f7c70ffe"
+dependencies = [
+ "bindgen",
+ "clang-sys",
+ "eyre",
+ "libc",
+ "memoffset",
+ "once_cell",
+ "pgrx-macros",
+ "pgrx-pg-config",
+ "pgrx-sql-entity-graph",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "shlex",
+ "sptr",
+ "syn 1.0.109",
+ "walkdir",
+]
+
+[[package]]
+name = "pgrx-sql-entity-graph"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a50083de83b1fac2484e8f2c2a7da5fed0193904e2578fa6c4ce02262c455c2b"
+dependencies = [
+ "convert_case",
+ "eyre",
+ "petgraph",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "unescape",
+]
+
+[[package]]
+name = "pgrx-tests"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ba0115cd80d9e3ca1d5d2a8ab8b7320d6ed614a53d025b86152696a8b3caa75"
+dependencies = [
+ "clap-cargo",
+ "eyre",
+ "libc",
+ "once_cell",
+ "owo-colors",
+ "pgrx",
+ "pgrx-macros",
+ "pgrx-pg-config",
+ "postgres",
+ "proptest",
+ "rand",
+ "regex",
+ "serde",
+ "serde_json",
+ "sysinfo",
+ "thiserror",
+]
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_shared 0.11.2",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "piper"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+dependencies = [
+ "atomic-waker",
+ "fastrand 2.0.1",
+ "futures-io",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
+
+[[package]]
+name = "polling"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
+dependencies = [
+ "autocfg",
+ "bitflags 1.3.2",
+ "cfg-if",
+ "concurrent-queue",
+ "libc",
+ "log",
+ "pin-project-lite",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "polling"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.28",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "postgres"
+version = "0.19.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7915b33ed60abc46040cbcaa25ffa1c7ec240668e0477c4f3070786f5916d451"
+dependencies = [
+ "bytes",
+ "fallible-iterator",
+ "futures-util",
+ "log",
+ "tokio",
+ "tokio-postgres",
+]
+
+[[package]]
+name = "postgres-protocol"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520"
+dependencies = [
+ "base64",
+ "byteorder",
+ "bytes",
+ "fallible-iterator",
+ "hmac",
+ "md-5",
+ "memchr",
+ "rand",
+ "sha2",
+ "stringprep",
+]
+
+[[package]]
+name = "postgres-types"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c"
+dependencies = [
+ "bytes",
+ "fallible-iterator",
+ "postgres-protocol",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "precomputed-hash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+
+[[package]]
+name = "predicates"
+version = "3.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0"
+dependencies = [
+ "anstyle",
+ "itertools 0.11.0",
+ "predicates-core",
+]
+
+[[package]]
+name = "predicates-core"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
+
+[[package]]
+name = "predicates-tree"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
+dependencies = [
+ "predicates-core",
+ "termtree",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.71"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "proptest"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
+dependencies = [
+ "bit-set",
+ "bit-vec",
+ "bitflags 2.4.1",
+ "lazy_static",
+ "num-traits",
+ "rand",
+ "rand_chacha",
+ "rand_xorshift",
+ "regex-syntax 0.8.2",
+ "rusty-fork",
+ "tempfile",
+ "unarray",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quote"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_distr"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
+dependencies = [
+ "num-traits",
+ "rand",
+]
+
+[[package]]
+name = "rand_xorshift"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rayon"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "ring"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+dependencies = [
+ "cc",
+ "getrandom",
+ "libc",
+ "spin",
+ "untrusted",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
+dependencies = [
+ "semver 0.11.0",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver 1.0.20",
+]
+
+[[package]]
+name = "rustix"
+version = "0.37.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
+dependencies = [
+ "bitflags 1.3.2",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys 0.3.8",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.12",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "rusty-fork"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f"
+dependencies = [
+ "fnv",
+ "quick-error",
+ "tempfile",
+ "wait-timeout",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "sct"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
+name = "semver"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
+dependencies = [
+ "semver-parser",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+
+[[package]]
+name = "semver-parser"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
+dependencies = [
+ "pest",
+]
+
+[[package]]
+name = "seq-macro"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
+
+[[package]]
+name = "serde"
+version = "1.0.193"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_cbor"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
+dependencies = [
+ "half 1.8.2",
+ "serde",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.193"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.108"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_regex"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf"
+dependencies = [
+ "regex",
+ "serde",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "service"
+version = "0.0.0"
+dependencies = [
+ "arc-swap",
+ "arrayvec",
+ "bincode",
+ "bytemuck",
+ "byteorder",
+ "c",
+ "crc32fast",
+ "crossbeam",
+ "dashmap",
+ "detect",
+ "half 2.3.1",
+ "libc",
+ "log",
+ "memmap2",
+ "memoffset",
+ "multiversion",
+ "num-traits",
+ "parking_lot",
+ "rand",
+ "rayon",
+ "rustix 0.38.28",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "ulock-sys",
+ "uuid",
+ "validator",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "shlex"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "similar"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "sluice"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
+dependencies = [
+ "async-channel 1.9.0",
+ "futures-core",
+ "futures-io",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+
+[[package]]
+name = "socket2"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "socket2"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "sptr"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a"
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "std_detect"
+version = "0.1.5"
+source = "git+https://github.com/tensorchord/stdarch.git?branch=avx512fp16#db0cdbc9b02074bfddabfd23a4a681f21640eada"
+dependencies = [
+ "cfg-if",
+ "libc",
+]
+
+[[package]]
+name = "string_cache"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "parking_lot",
+ "phf_shared 0.10.0",
+ "precomputed-hash",
+]
+
+[[package]]
+name = "stringprep"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6"
+dependencies = [
+ "finl_unicode",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sysinfo"
+version = "0.29.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd727fc423c2060f6c92d9534cef765c65a6ed3f428a03d7def74a8c4348e666"
+dependencies = [
+ "cfg-if",
+ "core-foundation-sys",
+ "libc",
+ "ntapi",
+ "once_cell",
+ "rayon",
+ "winapi",
+]
+
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "target-features"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfb5fa503293557c5158bd215fdc225695e567a77e453f5d4452a50a193969bd"
+
+[[package]]
+name = "tempfile"
+version = "3.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+dependencies = [
+ "cfg-if",
+ "fastrand 2.0.1",
+ "redox_syscall",
+ "rustix 0.38.28",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "term"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
+dependencies = [
+ "dirs-next",
+ "rustversion",
+ "winapi",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "termtree"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
+
+[[package]]
+name = "thiserror"
+version = "1.0.52"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.52"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.35.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2 0.5.5",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "tokio-postgres"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8"
+dependencies = [
+ "async-trait",
+ "byteorder",
+ "bytes",
+ "fallible-iterator",
+ "futures-channel",
+ "futures-util",
+ "log",
+ "parking_lot",
+ "percent-encoding",
+ "phf",
+ "pin-project-lite",
+ "postgres-protocol",
+ "postgres-types",
+ "rand",
+ "socket2 0.5.5",
+ "tokio",
+ "tokio-util",
+ "whoami",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "tracing-futures"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
+dependencies = [
+ "pin-project",
+ "tracing",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+
+[[package]]
+name = "ulock-sys"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32ad66e1a230c3dd9e07cf0065e3f6afef1fc270716f2ba419b2ddb19971ccfa"
+dependencies = [
+ "cty",
+]
+
+[[package]]
+name = "unarray"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
+
+[[package]]
+name = "unescape"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "ureq"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97"
+dependencies = [
+ "base64",
+ "flate2",
+ "log",
+ "once_cell",
+ "rustls",
+ "rustls-webpki",
+ "serde",
+ "serde_json",
+ "url",
+ "webpki-roots",
+]
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna 0.5.0",
+ "percent-encoding",
+]
+
+[[package]]
+name = "uuid"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+dependencies = [
+ "getrandom",
+ "serde",
+]
+
+[[package]]
+name = "validator"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b92f40481c04ff1f4f61f304d61793c7b56ff76ac1469f1beb199b1445b253bd"
+dependencies = [
+ "idna 0.4.0",
+ "lazy_static",
+ "regex",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "url",
+ "validator_derive",
+]
+
+[[package]]
+name = "validator_derive"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc44ca3088bb3ba384d9aecf40c6a23a676ce23e09bdaca2073d99c207f864af"
+dependencies = [
+ "if_chain",
+ "lazy_static",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 1.0.109",
+ "validator_types",
+]
+
+[[package]]
+name = "validator_types"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "111abfe30072511849c5910134e8baf8dc05de4c0e5903d681cbd5c9c4d611e3"
+dependencies = [
+ "proc-macro2",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "value-bag"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "vectors"
+version = "0.0.0"
+dependencies = [
+ "bincode",
+ "bytemuck",
+ "byteorder",
+ "detect",
+ "env_logger",
+ "half 2.3.1",
+ "httpmock",
+ "libc",
+ "log",
+ "mockall",
+ "num-traits",
+ "openai_api_rust",
+ "pgrx",
+ "pgrx-tests",
+ "rand",
+ "rustix 0.38.28",
+ "serde",
+ "serde_json",
+ "service",
+ "thiserror",
+ "toml",
+ "validator",
+]
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wait-timeout"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "waker-fn"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
+
+[[package]]
+name = "walkdir"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+
+[[package]]
+name = "web-sys"
+version = "0.3.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.25.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
+
+[[package]]
+name = "whoami"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
+name = "winnow"
+version = "0.5.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
diff --git a/pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix
new file mode 100644
index 000000000000..23d4499029ea
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix
@@ -0,0 +1,118 @@
+{ lib
+, buildPgrxExtension
+, cargo-pgrx
+, clang_16
+, fetchCrate
+, fetchFromGitHub
+, nix-update-script
+, nixosTests
+, openssl
+, pkg-config
+, postgresql
+, rustPlatform
+, stdenv
+, substituteAll
+}:
+
+let
+  # Upstream only works with clang 16, so we're pinning it here to
+  # avoid future incompatibility.
+  # See https://docs.pgvecto.rs/developers/development.html#environment, step 4
+  clang = clang_16;
+  rustPlatform' = rustPlatform // {
+    bindgenHook = rustPlatform.bindgenHook.override { inherit clang; };
+  };
+
+  # Upstream only works with a fixed version of cargo-pgrx for each release,
+  # so we're pinning it here to avoid future incompatibility.
+  # See https://docs.pgvecto.rs/developers/development.html#environment, step 6
+  cargo-pgrx_0_11_2 = cargo-pgrx.overrideAttrs (old: rec {
+    pname = "cargo-pgrx";
+    version = "0.11.2";
+
+    src = fetchCrate {
+      pname = "cargo-pgrx";
+      inherit version;
+      hash = "sha256-8NlpMDFaltTIA8G4JioYm8LaPJ2RGKH5o6sd6lBHmmM=";
+    };
+
+    cargoDeps = old.cargoDeps.overrideAttrs (_: {
+      inherit src;
+      outputHash = "sha256-qTb3JV3u42EilaK2jP9oa5D09mkuHyRbGGRs9Rg4TzI=";
+    });
+  });
+
+in
+(buildPgrxExtension.override {
+  cargo-pgrx = cargo-pgrx_0_11_2;
+  rustPlatform = rustPlatform';
+}) rec {
+  inherit postgresql;
+
+  pname = "pgvecto-rs";
+  version = "0.2.1";
+
+  buildInputs = [ openssl ];
+  nativeBuildInputs = [ pkg-config ];
+
+  patches = [
+    # Tell the `c` crate to use the flags from the rust bindgen hook
+    (substituteAll {
+      src = ./0001-read-clang-flags-from-environment.diff;
+      clang = lib.getExe clang;
+    })
+  ];
+
+  src = fetchFromGitHub {
+    owner = "tensorchord";
+    repo = "pgvecto.rs";
+    rev = "v${version}";
+    hash = "sha256-kwaGHerEVh6Oxb9jQupSapm7CsKl5CoH6jCv+zbi4FE=";
+  };
+
+  # Package has git dependencies on Cargo.lock (instead of just crate.io dependencies),
+  # so cargoHash does not work, therefore we have to include Cargo.lock in nixpkgs.
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "openai_api_rust-0.1.8" = "sha256-os5Y8KIWXJEYEcNzzT57wFPpEXdZ2Uy9W3j5+hJhhR4=";
+      "std_detect-0.1.5" = "sha256-RwWejfqyGOaeU9zWM4fbb/hiO1wMpxYPKEjLO0rtRmU=";
+    };
+  };
+
+  # Set appropriate version on vectors.control, otherwise it won't show up on PostgreSQL
+  postPatch = ''
+    substituteInPlace ./vectors.control --subst-var-by CARGO_VERSION ${version}
+  '';
+
+  # Include upgrade scripts in the final package
+  # https://github.com/tensorchord/pgvecto.rs/blob/v0.2.0/scripts/ci_package.sh#L6-L8
+  postInstall = ''
+    cp sql/upgrade/* $out/share/postgresql/extension/
+  '';
+
+  env = {
+    # Needed to get openssl-sys to use pkg-config.
+    OPENSSL_NO_VENDOR = 1;
+
+    # Bypass rust nightly features not being available on rust stable
+    RUSTC_BOOTSTRAP = 1;
+  };
+
+  passthru = {
+    updateScript = nix-update-script { };
+    tests = {
+      pgvecto-rs = nixosTests.pgvecto-rs;
+    };
+  };
+
+  meta = with lib; {
+    # The pgrx 0.11.2 dependency is broken in aarch64-linux: https://github.com/pgcentralfoundation/pgrx/issues/1429
+    # It is fixed in pgrx 0.11.3, but upstream is still using pgrx 0.11.2
+    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
+    description = "Scalable, Low-latency and Hybrid-enabled Vector Search in Postgres";
+    homepage = "https://github.com/tensorchord/pgvecto.rs";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ diogotcorreia esclear ];
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/packages.nix b/pkgs/servers/sql/postgresql/packages.nix
index 3b1c855e0de9..9cc83118c526 100644
--- a/pkgs/servers/sql/postgresql/packages.nix
+++ b/pkgs/servers/sql/postgresql/packages.nix
@@ -44,6 +44,8 @@ self: super: {
 
     pgsql-http = super.callPackage ./ext/pgsql-http.nix { };
 
+    pgvecto-rs = super.callPackage ./ext/pgvecto-rs { };
+
     pgvector = super.callPackage ./ext/pgvector.nix { };
 
     plpgsql_check = super.callPackage ./ext/plpgsql_check.nix { };
diff --git a/pkgs/servers/squid/default.nix b/pkgs/servers/squid/default.nix
index d564f77f7a7c..792c97ca6b5e 100644
--- a/pkgs/servers/squid/default.nix
+++ b/pkgs/servers/squid/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "squid";
-  version = "6.7";
+  version = "6.8";
 
   src = fetchurl {
     url = "http://www.squid-cache.org/Versions/v6/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
-    hash = "sha256-4U2qTq5Bkl0a4/COZEOaaqowEb3O1oZii43ml9WrhCg=";
+    hash = "sha256-EcxWULUYCdmUg8z64kdEouUc0WGZ9f8MkX6E/OaVhw8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/tautulli/default.nix b/pkgs/servers/tautulli/default.nix
index 2bab6f742316..fb2a67353606 100644
--- a/pkgs/servers/tautulli/default.nix
+++ b/pkgs/servers/tautulli/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "Tautulli";
-  version = "2.13.2";
+  version = "2.13.4";
   format = "other";
 
   pythonPath = [ setuptools ];
@@ -12,7 +12,7 @@ buildPythonApplication rec {
     owner = "Tautulli";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-G1YNOJ2snddhFOWDkRQikQ1qC3G1BHg+qb2j5ffIR8k=";
+    sha256 = "sha256-cOHirjYdfPPv7O9o3vnsKBffvqxoaRN32NaUOK0SmQ8=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/web-apps/wordpress/default.nix b/pkgs/servers/web-apps/wordpress/default.nix
index f4a9d05e8d94..f1a73feab865 100644
--- a/pkgs/servers/web-apps/wordpress/default.nix
+++ b/pkgs/servers/web-apps/wordpress/default.nix
@@ -5,7 +5,7 @@
     hash = "sha256-Jo2/Vlm4Ml24ucPI6ZHs2mkbpY2rZB1dofmGXNPweA8=";
   };
   wordpress6_4 = {
-    version = "6.4.2";
-    hash = "sha256-m4KJELf5zs3gwAQPmAhoPe2rhopZFsYN6OzAv6Wzo6c=";
+    version = "6.4.3";
+    hash = "sha256-PwjHHRlwhEH9q94bPq34NnQv3uhm1kOpjRAu0/ECaYY=";
   };
 }
diff --git a/pkgs/tools/admin/granted/default.nix b/pkgs/tools/admin/granted/default.nix
index 57eaec1acf38..4761d49e8bec 100644
--- a/pkgs/tools/admin/granted/default.nix
+++ b/pkgs/tools/admin/granted/default.nix
@@ -12,13 +12,13 @@
 
 buildGoModule rec {
   pname = "granted";
-  version = "0.21.0";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     owner = "common-fate";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hNbn1bBC9dNiThwi1+Mh45s/9DAwoI8XC4ZjB6Ls8sw=";
+    sha256 = "sha256-aHqMsEqlD/a/qQEjRKQU/+9Ov5BTnptExuO0eEXvf9k=";
   };
 
   vendorHash = "sha256-I4sds5r61oGop+EtOpDgTYwLbSVBBSBmNbRU56sCYjo=";
diff --git a/pkgs/tools/audio/liquidsoap/full.nix b/pkgs/tools/audio/liquidsoap/full.nix
index 87914436fd49..b4c4af7d457d 100644
--- a/pkgs/tools/audio/liquidsoap/full.nix
+++ b/pkgs/tools/audio/liquidsoap/full.nix
@@ -7,7 +7,7 @@
 
 let
   pname = "liquidsoap";
-  version = "2.2.3";
+  version = "2.2.4";
 in
 stdenv.mkDerivation {
   inherit pname version;
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     owner = "savonet";
     repo = "liquidsoap";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oCMSdmdU3oHrq3QFEDQLdb3CLFYcWylxTqKWtGOoQW8=";
+    hash = "sha256-aAW3PeobTRVi5mV321MHZ6RymvOY4DbZITjwcMwGwFo=";
   };
 
   postPatch = ''
@@ -76,6 +76,7 @@ stdenv.mkDerivation {
     ocamlPackages.camomile
     ocamlPackages.uri
     ocamlPackages.fileutils
+    ocamlPackages.magic-mime
     ocamlPackages.menhir # liquidsoap-lang
     ocamlPackages.menhirLib
     ocamlPackages.metadata
@@ -99,7 +100,6 @@ stdenv.mkDerivation {
     ocamlPackages.frei0r
     ocamlPackages.gd4o
     ocamlPackages.graphics
-    ocamlPackages.gstreamer
     ocamlPackages.imagelib
     ocamlPackages.inotify
     ocamlPackages.ladspa
@@ -108,7 +108,6 @@ stdenv.mkDerivation {
     ocamlPackages.lilv
     ocamlPackages.lo
     ocamlPackages.mad
-    ocamlPackages.magic
     ocamlPackages.ogg
     ocamlPackages.opus
     ocamlPackages.portaudio
diff --git a/pkgs/tools/misc/rshim-user-space/default.nix b/pkgs/tools/misc/rshim-user-space/default.nix
index a8bdd356a2cc..67cf3b6895e0 100644
--- a/pkgs/tools/misc/rshim-user-space/default.nix
+++ b/pkgs/tools/misc/rshim-user-space/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rshim-user-space";
-  version = "2.0.12";
+  version = "2.0.20";
 
   src = fetchFromGitHub {
     owner = "Mellanox";
     repo = pname;
     rev = "rshim-${version}";
-    hash = "sha256-jR9Q1i2p4weKuGPTAylNIVglgcZH0UtvXBVVCEquxu8=";
+    hash = "sha256-zm1cMTna9o8edl0M7tjUhbnElbUkQZSkh3KOI6tbE6I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/yt-dlp/default.nix b/pkgs/tools/misc/yt-dlp/default.nix
index eeb05dd4012e..03998332eda2 100644
--- a/pkgs/tools/misc/yt-dlp/default.nix
+++ b/pkgs/tools/misc/yt-dlp/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , brotli
+, hatchling
 , certifi
 , ffmpeg
 , rtmpdump
@@ -9,7 +10,9 @@
 , pycryptodomex
 , websockets
 , mutagen
+, requests
 , secretstorage
+, urllib3
 , atomicparsleySupport ? true
 , ffmpegSupport ? true
 , rtmpSupport ? true
@@ -22,19 +25,27 @@ 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 = "2023.12.30";
+  version = "2024.3.10";
+  pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-oRhi5XchsKDwiD3+taTXm6ITotTEXhiA6f1w+OZXDDg=";
+    inherit version;
+    pname = "yt_dlp";
+    hash = "sha256-bnTLFKadvrhyyO9OC4u+0u6EbsYzUTzzEkp0wfrtwHs=";
   };
 
+  nativeBuildInputs = [
+    hatchling
+  ];
+
   propagatedBuildInputs = [
     brotli
     certifi
     mutagen
     pycryptodomex
+    requests
     secretstorage  # "optional", as in not in requirements.txt, needed for `--cookies-from-browser`
+    urllib3
     websockets
   ];
 
@@ -48,7 +59,7 @@ buildPythonPackage rec {
         ++ lib.optional atomicparsleySupport atomicparsley
         ++ lib.optional ffmpegSupport ffmpeg
         ++ lib.optional rtmpSupport rtmpdump;
-    in lib.optionalString (packagesToBinPath != [])
+    in lib.optionals (packagesToBinPath != [])
     [ ''--prefix PATH : "${lib.makeBinPath packagesToBinPath}"'' ];
 
   setupPyBuildFlags = [
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 9ce4f3c95230..efe51519db8c 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -97,6 +97,7 @@ mapAliases ({
   bashInteractive_5 = bashInteractive; # Added 2021-08-20
   bash_5 = bash; # Added 2021-08-20
   bazel_3 = throw "bazel 3 is past end of life as it is not an lts version"; # Added 2023-02-02
+  bazel_4 = throw "'bazel_4' has been removed from nixpkgs as it has reached end of life"; # Added 2024-01-23
   bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04
   bee-unstable = throw "bee-unstable has been removed, use 'bee' instead"; # Added 2024-02-12
   bee-clef = throw "bee-clef has been removed as the upstream project was archived"; # Added 2024-02-12
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7676298b4561..d8a263b93e61 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -18330,18 +18330,6 @@ with pkgs;
 
   bazel = bazel_6;
 
-  bazel_4 = callPackage ../development/tools/build-managers/bazel/bazel_4 {
-    inherit (darwin) cctools;
-    inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
-    buildJdk = jdk11_headless;
-    buildJdkName = "java11";
-    runJdk = jdk11_headless;
-    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv
-      else if stdenv.cc.isGNU then gcc10Stdenv
-      else stdenv;
-    bazel_self = bazel_4;
-  };
-
   bazel_5 = callPackage ../development/tools/build-managers/bazel/bazel_5 {
     inherit (darwin) cctools sigtool;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
@@ -26922,8 +26910,6 @@ with pkgs;
 
   redstore = callPackage ../servers/http/redstore { };
 
-  reproxy = callPackage ../servers/reproxy { };
-
   repro-get = callPackage ../tools/package-management/repro-get { };
 
   restic = callPackage ../tools/backup/restic { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index a430508befe2..01439fd9f1e0 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -15034,6 +15034,8 @@ self: super: with self; {
 
   turnt = callPackage ../development/python-modules/turnt { };
 
+  tuya-device-sharing-sdk = callPackage ../development/python-modules/tuya-device-sharing-sdk { };
+
   tuya-iot-py-sdk = callPackage ../development/python-modules/tuya-iot-py-sdk { };
 
   tuyaha = callPackage ../development/python-modules/tuyaha { };