summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xmaintainers/scripts/debian-patches.sh2
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/web-apps/convos.nix72
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/convos.nix30
-rw-r--r--pkgs/applications/graphics/xara/debian-patches.nix30
-rw-r--r--pkgs/applications/graphics/xara/debian-patches.txt7
-rw-r--r--pkgs/applications/graphics/xara/default.nix22
-rw-r--r--pkgs/applications/networking/browsers/asuka/cargo-lock.patch1351
-rw-r--r--pkgs/applications/networking/browsers/asuka/default.nix28
-rw-r--r--pkgs/applications/networking/irc/convos/default.nix71
-rw-r--r--pkgs/development/ocaml-modules/base64/2.0.nix25
-rw-r--r--pkgs/development/ocaml-modules/torch/default.nix12
-rw-r--r--pkgs/development/python-modules/internetarchive/default.nix4
-rw-r--r--pkgs/development/python-modules/lazr-uri/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-xvfb/default.nix6
-rw-r--r--pkgs/development/python-modules/typeguard/default.nix3
-rw-r--r--pkgs/development/tools/build-managers/bazel/buildtools/default.nix4
-rw-r--r--pkgs/tools/networking/cjdns/default.nix8
-rw-r--r--pkgs/tools/security/aws-okta/default.nix8
-rw-r--r--pkgs/tools/security/aws-okta/deps.nix29
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix8
-rw-r--r--pkgs/top-level/ocaml-packages.nix2
-rw-r--r--pkgs/top-level/perl-packages.nix114
25 files changed, 1691 insertions, 152 deletions
diff --git a/maintainers/scripts/debian-patches.sh b/maintainers/scripts/debian-patches.sh
index b4923fb537e..de6be136ca7 100755
--- a/maintainers/scripts/debian-patches.sh
+++ b/maintainers/scripts/debian-patches.sh
@@ -2,7 +2,7 @@
 
 # Download patches from debian project
 # Usage $0 debian-patches.txt debian-patches.nix
-# An example input and output files can be found in applications/graphics/xara/
+# An example input and output files can be found in tools/graphics/plotutils
 
 DEB_URL=https://sources.debian.org/data/main
 declare -a deb_patches
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 0dba92f60c7..fd6294f2d7c 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -831,6 +831,7 @@
   ./services/web-apps/atlassian/crowd.nix
   ./services/web-apps/atlassian/jira.nix
   ./services/web-apps/codimd.nix
+  ./services/web-apps/convos.nix
   ./services/web-apps/cryptpad.nix
   ./services/web-apps/documize.nix
   ./services/web-apps/dokuwiki.nix
diff --git a/nixos/modules/services/web-apps/convos.nix b/nixos/modules/services/web-apps/convos.nix
new file mode 100644
index 00000000000..8be11eec9f3
--- /dev/null
+++ b/nixos/modules/services/web-apps/convos.nix
@@ -0,0 +1,72 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.convos;
+in
+{
+  options.services.convos = {
+    enable = mkEnableOption "Convos";
+    listenPort = mkOption {
+      type = types.port;
+      default = 3000;
+      example = 8080;
+      description = "Port the web interface should listen on";
+    };
+    listenAddress = mkOption {
+      type = types.str;
+      default = "*";
+      example = "127.0.0.1";
+      description = "Address or host the web interface should listen on";
+    };
+    reverseProxy = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enables reverse proxy support. This will allow Convos to automatically
+        pick up the <literal>X-Forwarded-For</literal> and
+        <literal>X-Request-Base</literal> HTTP headers set in your reverse proxy
+        web server. Note that enabling this option without a reverse proxy in
+        front will be a security issue.
+      '';
+    };
+  };
+  config = mkIf cfg.enable {
+    systemd.services.convos = {
+      description = "Convos Service";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "networking.target" ];
+      environment = {
+        CONVOS_HOME = "%S/convos";
+        CONVOS_REVERSE_PROXY = if cfg.reverseProxy then "1" else "0";
+        MOJO_LISTEN = "http://${toString cfg.listenAddress}:${toString cfg.listenPort}";
+      };
+      serviceConfig = {
+        ExecStart = "${pkgs.convos}/bin/convos daemon";
+        Restart = "on-failure";
+        StateDirectory = "convos";
+        WorkingDirectory = "%S/convos";
+        DynamicUser = true;
+        MemoryDenyWriteExecute = true;
+        ProtectHome = true;
+        ProtectClock = true;
+        ProtectHostname = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectKernelLogs = true;
+        ProtectControlGroups = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateUsers = true;
+        LockPersonality = true;
+        RestrictRealtime = true;
+        RestrictNamespaces = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6"];
+        SystemCallFilter = "@system-service";
+        SystemCallArchitectures = "native";
+        CapabilityBoundingSet = "";
+      };
+    };
+  };
+}
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 125dad9f83f..1e065c804c7 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -65,6 +65,7 @@ in
   containers-portforward = handleTest ./containers-portforward.nix {};
   containers-restart_networking = handleTest ./containers-restart_networking.nix {};
   containers-tmpfs = handleTest ./containers-tmpfs.nix {};
+  convos = handleTest ./convos.nix {};
   corerad = handleTest ./corerad.nix {};
   couchdb = handleTest ./couchdb.nix {};
   deluge = handleTest ./deluge.nix {};
diff --git a/nixos/tests/convos.nix b/nixos/tests/convos.nix
new file mode 100644
index 00000000000..b4ff1188fd8
--- /dev/null
+++ b/nixos/tests/convos.nix
@@ -0,0 +1,30 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
+with lib;
+let
+  port = 3333;
+in
+{
+  name = "convos";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ sgo ];
+  };
+
+  nodes = {
+    machine =
+      { pkgs, ... }:
+      {
+        services.convos = {
+          enable = true;
+          listenPort = port;
+        };
+      };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("convos")
+    machine.wait_for_open_port("${toString port}")
+    machine.succeed("journalctl -u convos | grep -q 'Listening at.*${toString port}'")
+    machine.succeed("curl http://localhost:${toString port}/")
+  '';
+})
diff --git a/pkgs/applications/graphics/xara/debian-patches.nix b/pkgs/applications/graphics/xara/debian-patches.nix
deleted file mode 100644
index dd306146186..00000000000
--- a/pkgs/applications/graphics/xara/debian-patches.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-# Generated by debian-patches.sh from debian-patches.txt
-let
-  prefix = "http://patch-tracker.debian.org/patch/series/dl/xaralx/0.7r1785-5";
-in
-[
-  {
-    url = "${prefix}/30_gtk_wxwidgets_symbol_clash";
-    sha256 = "1rc9dh9mnp93mad96dkp7idyhhcw7h6w0g5s92mqgzj79hqgaziz";
-  }
-  {
-    url = "${prefix}/40_algorithm_include";
-    sha256 = "03jhl1qnxj7nl8malf6v1y24aldfz87x1p2jxp04mrr35nzvyyc0";
-  }
-  {
-    url = "${prefix}/50_update_imagemagick_version_parser";
-    sha256 = "1nilsqghlr649sc14n1aqkhdx7f66rq91gqccdpi17jwijs27497";
-  }
-  {
-    url = "${prefix}/remove-icon-suffix";
-    sha256 = "160zmkgwlsanqivnip89558yvd9zvqp8ks2wbyr2aigl2rafin22";
-  }
-  {
-    url = "${prefix}/45_fix_gcc4";
-    sha256 = "06zsj0z9v5n557gj8337v6xd26clbvm4dc0qhvpvzbisq81l9jyi";
-  }
-  {
-    url = "${prefix}/55_fix_contstuctor_call";
-    sha256 = "0b14glrcwhv0ja960h56n5jm4f9563ladap2pgaywihq485ql1c1";
-  }
-]
diff --git a/pkgs/applications/graphics/xara/debian-patches.txt b/pkgs/applications/graphics/xara/debian-patches.txt
deleted file mode 100644
index 5c95d401a32..00000000000
--- a/pkgs/applications/graphics/xara/debian-patches.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-xaralx/0.7r1785-5
-30_gtk_wxwidgets_symbol_clash
-40_algorithm_include
-50_update_imagemagick_version_parser
-remove-icon-suffix
-45_fix_gcc4
-55_fix_contstuctor_call
diff --git a/pkgs/applications/graphics/xara/default.nix b/pkgs/applications/graphics/xara/default.nix
deleted file mode 100644
index 5e3c252435c..00000000000
--- a/pkgs/applications/graphics/xara/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{stdenv, fetchurl, automake, gettext, freetype, libxml2, pango, pkgconfig
-, wxGTK, gtk2, perl, zip}:
-
-stdenv.mkDerivation {
-  name = "xaralx-0.7r1785";
-
-  src = fetchurl {
-    url = "http://downloads2.xara.com/opensource/XaraLX-0.7r1785.tar.bz2";
-    sha256 = "05xbzq1i1vw2mdsv7zjqfpxfv3g1j0g5kks0gq6sh373xd6y8lyh";
-  };
-
-  nativeBuildInputs = [ automake pkgconfig gettext perl zip ];
-  buildInputs = [ wxGTK gtk2 libxml2 freetype pango ];
-
-  configureFlags = [ "--disable-svnversion" ];
-
-  patches = map fetchurl (import ./debian-patches.nix);
-
-  prePatch = "patchShebangs Scripts";
-
-  meta.broken = true;
-}
diff --git a/pkgs/applications/networking/browsers/asuka/cargo-lock.patch b/pkgs/applications/networking/browsers/asuka/cargo-lock.patch
new file mode 100644
index 00000000000..1d3990bc62f
--- /dev/null
+++ b/pkgs/applications/networking/browsers/asuka/cargo-lock.patch
@@ -0,0 +1,1351 @@
+diff --git i/Cargo.lock w/Cargo.lock
+index 6807c00..00b2c60 100644
+--- i/Cargo.lock
++++ w/Cargo.lock
+@@ -4,29 +4,34 @@
+ name = "aho-corasick"
+ version = "0.7.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
+ dependencies = [
+- "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr",
+ ]
+ 
+ [[package]]
+ name = "arc-swap"
+ version = "0.4.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d7b8a9123b8027467bce0099fe556c628a53c8d83df0507084c31e9ba2e39aff"
+ 
+ [[package]]
+ name = "array-macro"
+ version = "1.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7d034edd76d4e7adc314c95400941dedc89bd4337d565bf87f6b69d3b20dc4de"
+ 
+ [[package]]
+ name = "arrayref"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
+ 
+ [[package]]
+ name = "arrayvec"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+ 
+ [[package]]
+ name = "asuka"
+@@ -38,8 +43,6 @@ dependencies = [
+  "lazy_static",
+  "native-tls",
+  "open",
+- "openssl",
+- "openssl-sys",
+  "regex",
+  "tempfile",
+  "textwrap",
+@@ -50,769 +53,861 @@ dependencies = [
+ name = "autocfg"
+ version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+ 
+ [[package]]
+ name = "backtrace"
+ version = "0.3.40"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
+ dependencies = [
+- "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace-sys",
++ "cfg-if",
++ "libc",
++ "rustc-demangle",
+ ]
+ 
+ [[package]]
+ name = "backtrace-sys"
+ version = "0.1.32"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
+ dependencies = [
+- "cc 1.0.47 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "base64"
+ version = "0.10.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+ dependencies = [
+- "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
+ ]
+ 
+ [[package]]
+ name = "bitflags"
+ version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+ 
+ [[package]]
+ name = "blake2b_simd"
+ version = "0.5.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b83b7baab1e671718d78204225800d6b170e648188ac7dc992e9d6bddf87d0c0"
+ dependencies = [
+- "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayref",
++ "arrayvec",
++ "constant_time_eq",
+ ]
+ 
+ [[package]]
+ name = "byteorder"
+ version = "1.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
+ 
+ [[package]]
+ name = "c2-chacha"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
+ dependencies = [
+- "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ppv-lite86",
+ ]
+ 
+ [[package]]
+ name = "cc"
+ version = "1.0.47"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa87058dce70a3ff5621797f1506cb837edd02ac4c0ae642b4542dce802908b8"
+ 
+ [[package]]
+ name = "cfg-if"
+ version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+ 
+ [[package]]
+ name = "chrono"
+ version = "0.4.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e8493056968583b0193c1bb04d6f7684586f3726992d6c573261941a895dbd68"
+ dependencies = [
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "num-integer",
++ "num-traits",
++ "time",
+ ]
+ 
+ [[package]]
+ name = "cloudabi"
+ version = "0.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
+ ]
+ 
+ [[package]]
+ name = "constant_time_eq"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120"
+ 
+ [[package]]
+ name = "core-foundation"
+ version = "0.6.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d"
+ dependencies = [
+- "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
++ "core-foundation-sys",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "core-foundation-sys"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
+ 
+ [[package]]
+ name = "crossbeam-channel"
+ version = "0.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c8ec7fcd21571dc78f96cc96243cab8d8f035247c3efd16c687be154c3fa9efa"
+ dependencies = [
+- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-utils"
+ version = "0.6.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "lazy_static",
+ ]
+ 
+ [[package]]
+ name = "cursive"
+ version = "0.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6261747aa936aab19fc4ac3a2c1a8eee8fb5862ba96fb1e524ee56cb520d9caf"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "chrono 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-channel 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "enum-map 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "enumset 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hashbrown 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ncurses 5.99.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "signal-hook 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "toml 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "xi-unicode 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "chrono",
++ "crossbeam-channel",
++ "enum-map",
++ "enumset",
++ "hashbrown",
++ "lazy_static",
++ "libc",
++ "log",
++ "maplit",
++ "ncurses",
++ "num",
++ "owning_ref",
++ "signal-hook",
++ "term_size",
++ "toml",
++ "unicode-segmentation",
++ "unicode-width",
++ "xi-unicode",
+ ]
+ 
+ [[package]]
+ name = "darling"
+ version = "0.10.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858"
+ dependencies = [
+- "darling_core 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "darling_macro 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "darling_core",
++ "darling_macro",
+ ]
+ 
+ [[package]]
+ name = "darling_core"
+ version = "0.10.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b"
+ dependencies = [
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ident_case 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "strsim 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fnv",
++ "ident_case",
++ "proc-macro2",
++ "quote",
++ "strsim",
++ "syn",
+ ]
+ 
+ [[package]]
+ name = "darling_macro"
+ version = "0.10.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
+ dependencies = [
+- "darling_core 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "darling_core",
++ "quote",
++ "syn",
+ ]
+ 
+ [[package]]
+ name = "dirs"
+ version = "2.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "dirs-sys",
+ ]
+ 
+ [[package]]
+ name = "dirs-sys"
+ version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "libc",
++ "redox_users",
++ "winapi 0.3.8",
+ ]
+ 
+ [[package]]
+ name = "enum-map"
+ version = "0.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "75eb4afb8170adb4120b13700c1af58c3137cd72e4c56e282045af5c29ab5329"
+ dependencies = [
+- "array-macro 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "enum-map-derive 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "array-macro",
++ "enum-map-derive",
+ ]
+ 
+ [[package]]
+ name = "enum-map-derive"
+ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e57001dfb2532f5a103ff869656887fae9a8defa7d236f3e39d2ee86ed629ad7"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+ 
+ [[package]]
+ name = "enumset"
+ version = "0.4.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57b811aef4ff1cc938f13bbec348f0ecbfc2bb565b7ab90161c9f0b2805edc8a"
+ dependencies = [
+- "enumset_derive 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "enumset_derive",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "enumset_derive"
+ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b184c2d0714bbeeb6440481a19c78530aa210654d99529f13d2f860a1b447598"
+ dependencies = [
+- "darling 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "darling",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+ 
+ [[package]]
+ name = "failure"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
+ dependencies = [
+- "backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace",
++ "failure_derive",
+ ]
+ 
+ [[package]]
+ name = "failure_derive"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "synstructure",
+ ]
+ 
+ [[package]]
+ name = "fnv"
+ version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
+ 
+ [[package]]
+ name = "foreign-types"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+ dependencies = [
+- "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "foreign-types-shared",
+ ]
+ 
+ [[package]]
+ name = "foreign-types-shared"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+ 
+ [[package]]
+ name = "fuchsia-cprng"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+ 
+ [[package]]
+ name = "getrandom"
+ version = "0.1.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "libc",
++ "wasi",
+ ]
+ 
+ [[package]]
+ name = "hashbrown"
+ version = "0.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e1de41fb8dba9714efd92241565cdff73f78508c95697dd56787d3cba27e2353"
+ 
+ [[package]]
+ name = "ident_case"
+ version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+ 
+ [[package]]
+ name = "idna"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-normalization 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
+ ]
+ 
+ [[package]]
+ name = "json"
+ version = "0.12.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b3ca41abbeb7615d56322a984e63be5e5d0a117dfaca86c14393e32a762ccac1"
+ 
+ [[package]]
+ name = "kernel32-sys"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+ dependencies = [
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "winapi-build",
+ ]
+ 
+ [[package]]
+ name = "lazy_static"
+ version = "1.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+ 
+ [[package]]
+ name = "libc"
+ version = "0.2.65"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a31a0627fdf1f6a39ec0dd577e101440b7db22672c0901fe00a9a6fbb5c24e8"
+ 
+ [[package]]
+ name = "log"
+ version = "0.4.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
+ ]
+ 
+ [[package]]
+ name = "maplit"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+ 
+ [[package]]
+ name = "matches"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+ 
+ [[package]]
+ name = "maybe-uninit"
+ version = "2.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+ 
+ [[package]]
+ name = "memchr"
+ version = "2.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
+ 
+ [[package]]
+ name = "native-tls"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e"
+ dependencies = [
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl 0.10.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.52 (registry+https://github.com/rust-lang/crates.io-index)",
+- "schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static",
++ "libc",
++ "log",
++ "openssl",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "security-framework",
++ "security-framework-sys",
++ "tempfile",
+ ]
+ 
+ [[package]]
+ name = "ncurses"
+ version = "5.99.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "15699bee2f37e9f8828c7b35b2bc70d13846db453f2d507713b758fabe536b82"
+ dependencies = [
+- "cc 1.0.47 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "libc",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "num"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf4825417e1e1406b3782a8ce92f4d53f26ec055e3622e1881ca8e9f5f9e08db"
+ dependencies = [
+- "num-complex 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-complex",
++ "num-integer",
++ "num-iter",
++ "num-rational",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-complex"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fcb0cf31fb3ff77e6d2a6ebd6800df7fdcd106f2ad89113c9130bcd07f93dffc"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-integer"
+ version = "0.1.41"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-iter"
+ version = "0.1.39"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
++ "num-integer",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-rational"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f2885278d5fe2adc2f75ced642d52d879bffaceb5a2e0b1d4309ffdfb239b454"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
++ "num-integer",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-traits"
+ version = "0.2.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "443c53b3c3531dfcbfa499d8893944db78474ad7a1d87fa2d94d1a2231693ac6"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
+ ]
+ 
+ [[package]]
+ name = "open"
+ version = "1.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94b424e1086328b0df10235c6ff47be63708071881bead9e76997d9291c0134b"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8",
+ ]
+ 
+ [[package]]
+ name = "openssl"
+ version = "0.10.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2f372b2b53ce10fb823a337aaa674e3a7d072b957c6264d0f4ff0bd86e657449"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.52 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
++ "cfg-if",
++ "foreign-types",
++ "lazy_static",
++ "libc",
++ "openssl-sys",
+ ]
+ 
+ [[package]]
+ name = "openssl-probe"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+ 
+ [[package]]
+ name = "openssl-sys"
+ version = "0.9.52"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c977d08e1312e2f7e4b86f9ebaa0ed3b19d1daff75fae88bbb88108afbd801fc"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cc 1.0.47 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
+ ]
+ 
+ [[package]]
+ name = "owning_ref"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
+ dependencies = [
+- "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "stable_deref_trait",
+ ]
+ 
+ [[package]]
+ name = "percent-encoding"
+ version = "2.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+ 
+ [[package]]
+ name = "pkg-config"
+ version = "0.3.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
+ 
+ [[package]]
+ name = "ppv-lite86"
+ version = "0.2.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
+ 
+ [[package]]
+ name = "proc-macro2"
+ version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c9e470a8dc4aeae2dee2f335e8f533e2d4b347e1434e5671afc49b054592f27"
+ dependencies = [
+- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid",
+ ]
+ 
+ [[package]]
+ name = "quote"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
+ ]
+ 
+ [[package]]
+ name = "rand"
+ version = "0.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412"
+ dependencies = [
+- "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom",
++ "libc",
++ "rand_chacha",
++ "rand_core 0.5.1",
++ "rand_hc",
+ ]
+ 
+ [[package]]
+ name = "rand_chacha"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
+ dependencies = [
+- "c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "c2-chacha",
++ "rand_core 0.5.1",
+ ]
+ 
+ [[package]]
+ name = "rand_core"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+ dependencies = [
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2",
+ ]
+ 
+ [[package]]
+ name = "rand_core"
+ version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+ 
+ [[package]]
+ name = "rand_core"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+ dependencies = [
+- "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom",
+ ]
+ 
+ [[package]]
+ name = "rand_hc"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+ dependencies = [
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1",
+ ]
+ 
+ [[package]]
+ name = "rand_os"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+ dependencies = [
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi",
++ "fuchsia-cprng",
++ "libc",
++ "rand_core 0.4.2",
++ "rdrand",
++ "winapi 0.3.8",
+ ]
+ 
+ [[package]]
+ name = "rdrand"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+ dependencies = [
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+ 
+ [[package]]
+ name = "redox_syscall"
+ version = "0.1.56"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
+ 
+ [[package]]
+ name = "redox_users"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d"
+ dependencies = [
+- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure",
++ "rand_os",
++ "redox_syscall",
++ "rust-argon2",
+ ]
+ 
+ [[package]]
+ name = "regex"
+ version = "1.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd"
+ dependencies = [
+- "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++ "thread_local",
+ ]
+ 
+ [[package]]
+ name = "regex-syntax"
+ version = "0.6.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
+ 
+ [[package]]
+ name = "remove_dir_all"
+ version = "0.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8",
+ ]
+ 
+ [[package]]
+ name = "rust-argon2"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf"
+ dependencies = [
+- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64",
++ "blake2b_simd",
++ "crossbeam-utils",
+ ]
+ 
+ [[package]]
+ name = "rustc-demangle"
+ version = "0.1.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+ 
+ [[package]]
+ name = "schannel"
+ version = "0.1.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021"
+ dependencies = [
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static",
++ "winapi 0.3.8",
+ ]
+ 
+ [[package]]
+ name = "security-framework"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "301c862a6d0ee78f124c5e1710205965fc5c553100dcda6d98f13ef87a763f04"
+ dependencies = [
+- "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "core-foundation",
++ "core-foundation-sys",
++ "libc",
++ "security-framework-sys",
+ ]
+ 
+ [[package]]
+ name = "security-framework-sys"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895"
+ dependencies = [
+- "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "core-foundation-sys",
+ ]
+ 
+ [[package]]
+ name = "serde"
+ version = "1.0.102"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0c4b39bd9b0b087684013a792c59e3e07a46a01d2322518d8a1104641a0b1be0"
+ 
+ [[package]]
+ name = "signal-hook"
+ version = "0.1.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cb543aecec4ba8b867f41284729ddfdb7e8fcd70ec3d7d37fca3007a4b53675f"
+ dependencies = [
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "signal-hook-registry 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "signal-hook-registry",
+ ]
+ 
+ [[package]]
+ name = "signal-hook-registry"
+ version = "1.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1797d48f38f91643908bb14e35e79928f9f4b3cefb2420a564dde0991b4358dc"
+ dependencies = [
+- "arc-swap 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arc-swap",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "smallvec"
+ version = "0.6.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
+ dependencies = [
+- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "maybe-uninit",
+ ]
+ 
+ [[package]]
+ name = "stable_deref_trait"
+ version = "1.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
+ 
+ [[package]]
+ name = "strsim"
+ version = "0.9.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "032c03039aae92b350aad2e3779c352e104d919cb192ba2fabbd7b831ce4f0f6"
+ 
+ [[package]]
+ name = "syn"
+ version = "1.0.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "661641ea2aa15845cddeb97dad000d22070bb5c1fb456b96c1cba883ec691e92"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
+ ]
+ 
+ [[package]]
+ name = "synstructure"
+ version = "0.12.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "unicode-xid",
+ ]
+ 
+ [[package]]
+ name = "tempfile"
+ version = "3.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "libc",
++ "rand",
++ "redox_syscall",
++ "remove_dir_all",
++ "winapi 0.3.8",
+ ]
+ 
+ [[package]]
+ name = "term_size"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9e5b9a66db815dcfd2da92db471106457082577c3c278d4138ab3e3b4e189327"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "libc",
++ "winapi 0.2.8",
+ ]
+ 
+ [[package]]
+@@ -828,225 +923,126 @@ dependencies = [
+ name = "thread_local"
+ version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+ dependencies = [
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static",
+ ]
+ 
+ [[package]]
+ name = "time"
+ version = "0.1.42"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
+ dependencies = [
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "redox_syscall",
++ "winapi 0.3.8",
+ ]
+ 
+ [[package]]
+ name = "toml"
+ version = "0.5.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "01d1404644c8b12b16bfcffa4322403a91a451584daaaa7c28d3152e6cbc98cf"
+ dependencies = [
+- "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde",
+ ]
+ 
+ [[package]]
+ name = "unicode-bidi"
+ version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
+ ]
+ 
+ [[package]]
+ name = "unicode-normalization"
+ version = "0.1.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "09c8070a9942f5e7cfccd93f490fdebd230ee3c3c9f107cb25bad5351ef671cf"
+ dependencies = [
+- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec",
+ ]
+ 
+ [[package]]
+ name = "unicode-segmentation"
+ version = "1.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+ 
+ [[package]]
+ name = "unicode-width"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
+ 
+ [[package]]
+ name = "unicode-xid"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+ 
+ [[package]]
+ name = "url"
+ version = "2.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61"
+ dependencies = [
+- "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "idna",
++ "matches",
++ "percent-encoding",
+ ]
+ 
+ [[package]]
+ name = "vcpkg"
+ version = "0.2.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95"
+ 
+ [[package]]
+ name = "wasi"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
+ 
+ [[package]]
+ name = "winapi"
+ version = "0.2.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+ 
+ [[package]]
+ name = "winapi"
+ version = "0.3.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+ dependencies = [
+- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
+ ]
+ 
+ [[package]]
+ name = "winapi-build"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+ 
+ [[package]]
+ name = "winapi-i686-pc-windows-gnu"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+ 
+ [[package]]
+ name = "winapi-x86_64-pc-windows-gnu"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+ 
+ [[package]]
+ name = "xi-unicode"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-
+-[metadata]
+-"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
+-"checksum arc-swap 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d7b8a9123b8027467bce0099fe556c628a53c8d83df0507084c31e9ba2e39aff"
+-"checksum array-macro 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7d034edd76d4e7adc314c95400941dedc89bd4337d565bf87f6b69d3b20dc4de"
+-"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
+-"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+-"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+-"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
+-"checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
+-"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+-"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+-"checksum blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b83b7baab1e671718d78204225800d6b170e648188ac7dc992e9d6bddf87d0c0"
+-"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
+-"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
+-"checksum cc 1.0.47 (registry+https://github.com/rust-lang/crates.io-index)" = "aa87058dce70a3ff5621797f1506cb837edd02ac4c0ae642b4542dce802908b8"
+-"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+-"checksum chrono 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e8493056968583b0193c1bb04d6f7684586f3726992d6c573261941a895dbd68"
+-"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+-"checksum constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120"
+-"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d"
+-"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
+-"checksum crossbeam-channel 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c8ec7fcd21571dc78f96cc96243cab8d8f035247c3efd16c687be154c3fa9efa"
+-"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
+-"checksum cursive 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261747aa936aab19fc4ac3a2c1a8eee8fb5862ba96fb1e524ee56cb520d9caf"
+-"checksum darling 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858"
+-"checksum darling_core 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b"
+-"checksum darling_macro 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
+-"checksum dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
+-"checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
+-"checksum enum-map 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "75eb4afb8170adb4120b13700c1af58c3137cd72e4c56e282045af5c29ab5329"
+-"checksum enum-map-derive 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e57001dfb2532f5a103ff869656887fae9a8defa7d236f3e39d2ee86ed629ad7"
+-"checksum enumset 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "57b811aef4ff1cc938f13bbec348f0ecbfc2bb565b7ab90161c9f0b2805edc8a"
+-"checksum enumset_derive 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b184c2d0714bbeeb6440481a19c78530aa210654d99529f13d2f860a1b447598"
+-"checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
+-"checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08"
+-"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
+-"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+-"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+-"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+-"checksum getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407"
+-"checksum hashbrown 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1de41fb8dba9714efd92241565cdff73f78508c95697dd56787d3cba27e2353"
+-"checksum ident_case 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+-"checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
+-"checksum json 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3ca41abbeb7615d56322a984e63be5e5d0a117dfaca86c14393e32a762ccac1"
+-"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+-"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+-"checksum libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)" = "1a31a0627fdf1f6a39ec0dd577e101440b7db22672c0901fe00a9a6fbb5c24e8"
+-"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
+-"checksum maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+-"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+-"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+-"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
+-"checksum native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e"
+-"checksum ncurses 5.99.0 (registry+https://github.com/rust-lang/crates.io-index)" = "15699bee2f37e9f8828c7b35b2bc70d13846db453f2d507713b758fabe536b82"
+-"checksum num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cf4825417e1e1406b3782a8ce92f4d53f26ec055e3622e1881ca8e9f5f9e08db"
+-"checksum num-complex 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fcb0cf31fb3ff77e6d2a6ebd6800df7fdcd106f2ad89113c9130bcd07f93dffc"
+-"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
+-"checksum num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e"
+-"checksum num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2885278d5fe2adc2f75ced642d52d879bffaceb5a2e0b1d4309ffdfb239b454"
+-"checksum num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "443c53b3c3531dfcbfa499d8893944db78474ad7a1d87fa2d94d1a2231693ac6"
+-"checksum open 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "94b424e1086328b0df10235c6ff47be63708071881bead9e76997d9291c0134b"
+-"checksum openssl 0.10.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2f372b2b53ce10fb823a337aaa674e3a7d072b957c6264d0f4ff0bd86e657449"
+-"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+-"checksum openssl-sys 0.9.52 (registry+https://github.com/rust-lang/crates.io-index)" = "c977d08e1312e2f7e4b86f9ebaa0ed3b19d1daff75fae88bbb88108afbd801fc"
+-"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
+-"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+-"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
+-"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
+-"checksum proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9c9e470a8dc4aeae2dee2f335e8f533e2d4b347e1434e5671afc49b054592f27"
+-"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
+-"checksum rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412"
+-"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
+-"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+-"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+-"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+-"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+-"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+-"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+-"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
+-"checksum redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d"
+-"checksum regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd"
+-"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
+-"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
+-"checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf"
+-"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+-"checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021"
+-"checksum security-framework 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "301c862a6d0ee78f124c5e1710205965fc5c553100dcda6d98f13ef87a763f04"
+-"checksum security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895"
+-"checksum serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4b39bd9b0b087684013a792c59e3e07a46a01d2322518d8a1104641a0b1be0"
+-"checksum signal-hook 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cb543aecec4ba8b867f41284729ddfdb7e8fcd70ec3d7d37fca3007a4b53675f"
+-"checksum signal-hook-registry 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1797d48f38f91643908bb14e35e79928f9f4b3cefb2420a564dde0991b4358dc"
+-"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
+-"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
+-"checksum strsim 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "032c03039aae92b350aad2e3779c352e104d919cb192ba2fabbd7b831ce4f0f6"
+-"checksum syn 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "661641ea2aa15845cddeb97dad000d22070bb5c1fb456b96c1cba883ec691e92"
+-"checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
+-"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+-"checksum term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9e5b9a66db815dcfd2da92db471106457082577c3c278d4138ab3e3b4e189327"
+-"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+-"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
+-"checksum toml 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "01d1404644c8b12b16bfcffa4322403a91a451584daaaa7c28d3152e6cbc98cf"
+-"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+-"checksum unicode-normalization 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "09c8070a9942f5e7cfccd93f490fdebd230ee3c3c9f107cb25bad5351ef671cf"
+-"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+-"checksum unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
+-"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+-"checksum url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61"
+-"checksum vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95"
+-"checksum wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
+-"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+-"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+-"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+-"checksum xi-unicode 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7395cdb9d0a6219fa0ea77d08c946adf9c1984c72fcd443ace30365f3daadef7"
++checksum = "7395cdb9d0a6219fa0ea77d08c946adf9c1984c72fcd443ace30365f3daadef7"
diff --git a/pkgs/applications/networking/browsers/asuka/default.nix b/pkgs/applications/networking/browsers/asuka/default.nix
new file mode 100644
index 00000000000..458ab3064a9
--- /dev/null
+++ b/pkgs/applications/networking/browsers/asuka/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, rustPlatform, fetchurl, pkgconfig, ncurses, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "asuka";
+  version = "0.8.0";
+
+  src = fetchurl {
+    url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz";
+    sha256 = "10hmsdwf2nrsmpycqa08vd31c6vhx7w5fhvv5a9f92sqp0lcavf0";
+  };
+
+  cargoPatches = [ ./cargo-lock.patch ];
+
+  cargoSha256 = "0csj63x77nkdh543pzl9cbaip6xp8anw0942hc6j19y7yicd29ns";
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ ncurses openssl ]
+    ++ stdenv.lib.optional stdenv.isDarwin Security;
+
+  meta = with stdenv.lib; {
+    description = "Gemini Project client written in Rust with NCurses";
+    homepage = "https://git.sr.ht/~julienxx/asuka";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sikmir ];
+  };
+}
diff --git a/pkgs/applications/networking/irc/convos/default.nix b/pkgs/applications/networking/irc/convos/default.nix
new file mode 100644
index 00000000000..a4eae497bc9
--- /dev/null
+++ b/pkgs/applications/networking/irc/convos/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchFromGitHub, perl, perlPackages, makeWrapper, shortenPerlShebang }:
+
+with stdenv.lib;
+
+perlPackages.buildPerlPackage rec {
+  pname = "convos";
+  version = "4.22";
+
+  src = fetchFromGitHub rec {
+    owner = "Nordaaker";
+    repo = pname;
+    rev = version;
+    sha256 = "0a5wq88ncbn7kwcw3z4wdl1wxmx5vq5a7crb1bvbvskgwwy8zfx8";
+  };
+
+  nativeBuildInputs = [ makeWrapper ]
+    ++ optional stdenv.isDarwin [ shortenPerlShebang ];
+  
+  buildInputs = with perlPackages; [
+    CryptEksblowfish FileHomeDir FileReadBackwards
+    IOSocketSSL IRCUtils JSONValidator LinkEmbedder ModuleInstall
+    Mojolicious MojoliciousPluginOpenAPI MojoliciousPluginWebpack
+    ParseIRC TextMarkdown TimePiece UnicodeUTF8
+    CpanelJSONXS EV
+  ];
+
+  checkInputs = with perlPackages; [ TestDeep TestMore ];
+
+  postPatch = ''
+    patchShebangs script/convos
+  '';
+
+  # A test fails since gethostbyaddr(127.0.0.1) fails to resolve to localhost in
+  # the sandbox, we replace the this out from a substitution expression
+  #
+  # Module::Install is a runtime dependency not covered by the tests, so we add
+  # a test for it.
+  #
+  preCheck = ''
+    substituteInPlace t/web-register-open-to-public.t \
+      --replace '!127.0.0.1!' '!localhost!'
+
+    echo "use Test::More tests => 1;require_ok('Module::Install')" \
+      > t/00_nixpkgs_module_install.t
+  '';
+
+  # Convos expects to find assets in both auto/share/dist/Convos, and $MOJO_HOME
+  # which is set to $out
+  #
+  postInstall = ''
+    AUTO_SHARE_PATH=$out/${perl.libPrefix}/auto/share/dist/Convos
+    mkdir -p $AUTO_SHARE_PATH
+    cp -vR public assets $AUTO_SHARE_PATH/
+    ln -s $AUTO_SHARE_PATH/public/asset $out/asset
+    cp -vR templates $out/templates
+    cp cpanfile $out/cpanfile
+  '' + optionalString stdenv.isDarwin ''
+    shortenPerlShebang $out/bin/convos
+  '' + ''
+    wrapProgram $out/bin/convos --set MOJO_HOME $out
+  '';
+
+  passthru.tests = nixosTests.convos;
+
+  meta = {
+    homepage = "https://convos.chat";
+    description = "Convos is the simplest way to use IRC in your browser";
+    license = stdenv.lib.licenses.artistic2;
+    maintainers = with maintainers; [ sgo ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/base64/2.0.nix b/pkgs/development/ocaml-modules/base64/2.0.nix
deleted file mode 100644
index a49e0e8a778..00000000000
--- a/pkgs/development/ocaml-modules/base64/2.0.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild }:
-
-let version = "2.0.0"; in
-
-stdenv.mkDerivation {
-  pname = "ocaml-base64";
-  inherit version;
-
-  src = fetchzip {
-    url = "https://github.com/mirage/ocaml-base64/archive/v${version}.tar.gz";
-    sha256 = "1nv55gwq5vaxmrcz9ja2s165b1p9fhcxszc1l76043gpa56qm4fs";
-  };
-
-  buildInputs = [ ocaml findlib ocamlbuild ];
-
-  createFindlibDestdir = true;
-
-  meta = {
-    homepage = "https://github.com/mirage/ocaml-base64";
-    platforms = ocaml.meta.platforms or [];
-    description = "Base64 encoding and decoding in OCaml";
-    license = stdenv.lib.licenses.isc;
-    maintainers = with stdenv.lib.maintainers; [ vbgl ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/torch/default.nix b/pkgs/development/ocaml-modules/torch/default.nix
index 457259bb1bb..3ae9b44eba9 100644
--- a/pkgs/development/ocaml-modules/torch/default.nix
+++ b/pkgs/development/ocaml-modules/torch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildDunePackage
 , fetchFromGitHub
 , cmdliner
@@ -15,17 +15,15 @@
 
 buildDunePackage rec {
   pname = "torch";
-  version = "0.8";
-
-  owner = "LaurentMazare";
+  version = "0.9b";
 
   minimumOCamlVersion = "4.07";
 
   src = fetchFromGitHub {
-    inherit owner;
+    owner = "LaurentMazare";
     repo   = "ocaml-${pname}";
     rev    = version;
-    sha256 = "19w31paj24pns2ahk9j9rgpkb5hpcd41kfaarxrlddww5dl6pxvi";
+    sha256 = "1xn8zfs3viz80agckcpl9a4vjbq6j5g280i95jyy5s0zbcnajpnm";
   };
 
   propagatedBuildInputs = [
@@ -47,7 +45,7 @@ buildDunePackage rec {
   doCheck = true;
   checkPhase = "dune runtest";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     inherit (src.meta) homepage;
     description = "Ocaml bindings to Pytorch";
     maintainers = [ maintainers.bcdarwin ];
diff --git a/pkgs/development/python-modules/internetarchive/default.nix b/pkgs/development/python-modules/internetarchive/default.nix
index d862e3d2abb..ecf39000661 100644
--- a/pkgs/development/python-modules/internetarchive/default.nix
+++ b/pkgs/development/python-modules/internetarchive/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "internetarchive";
-  version = "1.9.3";
+  version = "1.9.4";
 
   # Can't use pypi, data files for tests missing
   src = fetchFromGitHub {
     owner = "jjjake";
     repo = "internetarchive";
     rev = "v${version}";
-    sha256 = "19av6cpps2qldfl3wb9mcirs1a48a4466m1v9k9yhdznqi4zb0ji";
+    sha256 = "10xlblj21hanahsmw6lfggbrbpw08pdmvdgds1p58l8xd4fazli8";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/lazr-uri/default.nix b/pkgs/development/python-modules/lazr-uri/default.nix
index d6b3cc29324..e9278625383 100644
--- a/pkgs/development/python-modules/lazr-uri/default.nix
+++ b/pkgs/development/python-modules/lazr-uri/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "lazr.uri";
-  version = "1.0.3";
+  version = "1.0.4";
 
   disabled = isPy27; # namespace is broken for python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c620b5993c8c6a73084176bfc51de64972b8373620476ed841931a49752dc8b";
+    sha256 = "1griz2r0vhi9k91wfhlx5cx7y3slkfyzyqldaa9i0zp850iqz0q2";
   };
 
   propagatedBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pytest-xvfb/default.nix b/pkgs/development/python-modules/pytest-xvfb/default.nix
index b9ae9be428d..64078d68a8b 100644
--- a/pkgs/development/python-modules/pytest-xvfb/default.nix
+++ b/pkgs/development/python-modules/pytest-xvfb/default.nix
@@ -3,15 +3,17 @@
 , fetchPypi
 , pytest
 , virtual-display
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "pytest-xvfb";
-  version = "1.2.0";
+  version = "2.0.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7544ca8d0c7c40db4b40d7a417a7b071c68d6ef6bdf9700872d7a167302f979";
+    sha256 = "1kyq5rg27dsnj7dc6x9y7r8vwf8rc88y2ppnnw6r96alw0nn9fn4";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix
index da75b7f18dc..7541d717e8a 100644
--- a/pkgs/development/python-modules/typeguard/default.nix
+++ b/pkgs/development/python-modules/typeguard/default.nix
@@ -4,6 +4,7 @@
 , stdenv
 , setuptools_scm
 , pytest
+, typing-extensions
 , glibcLocales
 }:
 
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     substituteInPlace setup.cfg --replace " --cov" ""
   '';
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest typing-extensions ];
 
   checkPhase = ''
     py.test .
diff --git a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
index 2f026c9d99c..83182983455 100644
--- a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "bazel-buildtools";
-  version = "3.2.1";
+  version = "3.3.0";
 
   goPackagePath = "github.com/bazelbuild/buildtools";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "bazelbuild";
     repo = "buildtools";
     rev = version;
-    sha256 = "1f2shjskcmn3xpgvb9skli5xaf942wgyg5ps7r905n1zc0gm8izn";
+    sha256 = "0g411gjbm02qd5b50iy6kk81kx2n5zw5x1m6i6g7nrmh38p3pn9k";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
index 9a74344d293..13388d33779 100644
--- a/pkgs/tools/networking/cjdns/default.nix
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, nodejs, which, python27, utillinux, nixosTests }:
 
-let version = "20.6"; in
-stdenv.mkDerivation {
-  name = "cjdns-"+version;
+stdenv.mkDerivation rec {
+  pname = "cjdns";
+  version = "20.7";
 
   src = fetchFromGitHub {
     owner = "cjdelisle";
     repo = "cjdns";
     rev = "cjdns-v${version}";
-    sha256 = "1d5rrnqb5dcmm5cg2ky1cgxz6ncb23n1j797j9zzw6xxdvkf3kgi";
+    sha256 = "09gpqpzc00pp3cj7lyq9876p7is4bcndpdi5knqbv824vk4bj3k0";
   };
 
   buildInputs = [ which python27 nodejs ] ++
diff --git a/pkgs/tools/security/aws-okta/default.nix b/pkgs/tools/security/aws-okta/default.nix
index fe7d5e69f4d..909c822374f 100644
--- a/pkgs/tools/security/aws-okta/default.nix
+++ b/pkgs/tools/security/aws-okta/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "aws-okta";
-  version = "0.26.3";
+  version = "1.0.2";
 
   goPackagePath = "github.com/segmentio/aws-okta";
 
@@ -10,13 +10,13 @@ buildGoPackage rec {
     owner = "segmentio";
     repo = "aws-okta";
     rev = "v${version}";
-    sha256 = "0n6xm3yv0lxfapchzfrqi05hk918n4lh1hcp7gq7hybam93rld96";
+    sha256 = "0rqkbhprz1j9b9bx3wvl5zi4p02q1qza905wkrvh42f9pbknajww";
   };
 
-  goDeps = ./deps.nix;
-
   buildFlags = [ "--tags" "release" ];
 
+  buildFlagsArray = [ "-ldflags=-X main.Version=${version}" ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libusb1  libiconv ];
 
diff --git a/pkgs/tools/security/aws-okta/deps.nix b/pkgs/tools/security/aws-okta/deps.nix
deleted file mode 100644
index 180aa69d56c..00000000000
--- a/pkgs/tools/security/aws-okta/deps.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus.git";
-      rev = "a437dfd2463eaedbec3dfe443e477d3b0a810b3f";
-      sha256 = "1904s2bbc7p88anzjp6fyj3jrbm5p6wbb8j4490674dq10kkcfbj";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys/unix";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/sys.git";
-      rev = "b699b7032584f0953262cb2788a0ca19bb494703";
-      sha256 = "172sw1bm581qwal9pbf9qj1sgivr74nabbj8qq4q4fhgpzams9ix";
-    };
-  }
-  {
-    goPackagePath = "github.com/marshallbrekka/go-u2fhost";
-    fetch = {
-      type = "git";
-      url = "https://github.com/marshallbrekka/go-u2fhost";
-      rev = "72b0e7a3f583583996b3b382d2dfaa81fdc4b82c";
-      sha256 = "0apzmf0bjpr58ynw55agyjsl74zyg5qjk19nyyy4zhip3s9b1d0h";
-    };
-  }
-]
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 64392f49a52..f9487820baf 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -626,6 +626,7 @@ mapAliases ({
   xfce4-14 = xfce;
   xfce4-12 = throw "xfce4-12 has been replaced by xfce4-14"; # added 2020-03-14
   x11 = xlibsWrapper; # added 2015-09
+  xara = throw "xara has been removed from nixpkgs. Unmaintained since 2006"; # added 2020-06-24
   xbmc = kodi; # added 2018-04-25
   xbmcPlain = kodiPlain; # added 2018-04-25
   xbmcPlugins = kodiPlugins; # added 2018-04-25
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4d88c63bcfb..8a7bbe3ac53 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -18809,6 +18809,10 @@ in
 
   arora = callPackage ../applications/networking/browsers/arora { };
 
+  asuka = callPackage ../applications/networking/browsers/asuka {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   artha = callPackage ../applications/misc/artha { };
 
   atlassian-cli = callPackage ../applications/office/atlassian-cli { };
@@ -19172,6 +19176,8 @@ in
   codeblocks = callPackage ../applications/editors/codeblocks { };
   codeblocksFull = codeblocks.override { contribPlugins = true; };
 
+  convos = callPackage ../applications/networking/irc/convos { };
+
   comical = callPackage ../applications/graphics/comical { };
 
   containerd = callPackage ../applications/virtualization/containerd { };
@@ -23124,8 +23130,6 @@ in
     libpng = libpng12;
   };
 
-  xara = callPackage ../applications/graphics/xara { };
-
   xastir = callPackage ../applications/misc/xastir {
     rastermagick = imagemagick;
     inherit (xorg) libXt;
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 1ff7c8a5198..194abc496f2 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -42,8 +42,6 @@ let
 
     atdgen = callPackage ../development/ocaml-modules/atdgen { };
 
-    base64_2 = callPackage ../development/ocaml-modules/base64/2.0.nix { };
-
     base64 = callPackage ../development/ocaml-modules/base64 { };
 
     bap = callPackage ../development/ocaml-modules/bap {
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index b3e44398f6a..102db43bc32 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -9698,6 +9698,21 @@ let
     };
   };
 
+  IRCUtils = buildPerlPackage {
+    pname = "IRC-Utils";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HI/HINRIK/IRC-Utils-0.12.tar.gz";
+      sha256 = "c7d6311eb6c79e983833c9e6b4e8d426d07a9874d20f4bc641b313b99c9bc8a0";
+    };
+    meta = {
+      homepage = "http://metacpan.org/release/IRC-Utils";
+      description = "Common utilities for IRC-related tasks";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   # TODO: use CPAN version
   ImageExifTool = buildPerlPackage {
     pname = "Image-ExifTool";
@@ -9931,10 +9946,10 @@ let
 
   JSONValidator = buildPerlPackage {
     pname = "JSON-Validator";
-    version = "3.23";
+    version = "4.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-3.23.tar.gz";
-      sha256 = "1fzy2z7mkg5vgcjvykh5ay8yg6q496wi14x9wp5hc9agplsq7f0s";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-4.00.tar.gz";
+      sha256 = "09p6n5ahsa13fmxb01siz9hcmyswgb05ac2njbhzim6cnx9d6cwj";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ DataValidateDomain DataValidateIP Mojolicious NetIDNEncode YAMLLibYAML ];
@@ -10302,6 +10317,23 @@ let
     doCheck = false;
   };
 
+  LinkEmbedder = buildPerlPackage {
+    pname = "LinkEmbedder";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.12.tar.gz";
+      sha256 = "1fd25bd6047b45cdcb1ab71a3d3bb0b36c71ec844a8742dee0bb34f8587fbd08";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/jhthorsen/linkembedder";
+      description = "Embed / expand oEmbed resources and other URL / links";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   LinuxACL = buildPerlPackage {
     pname = "Linux-ACL";
     version = "0.05";
@@ -12285,16 +12317,16 @@ let
 
   Mojolicious = buildPerlPackage {
     pname = "Mojolicious";
-    version = "8.32";
+    version = "8.55";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-8.32.tar.gz";
-      sha256 = "11fyz534syihisl8498655bqq4y8c73a6xhvl1wlq4axdgkm0d2h";
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-8.55.tar.gz";
+      sha256 = "116f79a8jvdk0zfj34gp3idhxgk4l8qq4ka6pwhdp8pmks969w0x";
     };
     meta = {
       homepage = "https://mojolicious.org";
       description = "Real-time web framework";
       license = stdenv.lib.licenses.artistic2;
-      maintainers = [ maintainers.thoughtpolice ];
+      maintainers = with maintainers; [ thoughtpolice sgo ];
     };
   };
 
@@ -12316,10 +12348,10 @@ let
 
   MojoliciousPluginOpenAPI = buildPerlPackage {
     pname = "Mojolicious-Plugin-OpenAPI";
-    version = "2.21";
+    version = "3.33";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-2.21.tar.gz";
-      sha256 = "34b1f42d846c26d8be3a3556dc5a02dd7ab47c5612b41d3caf1ce6bc16101dc2";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-3.33.tar.gz";
+      sha256 = "0lccvanc3cici83j6fx7gg3wdcsvgv8d7hzd06r0q1mp8329sbv4";
     };
     propagatedBuildInputs = [ JSONValidator ];
     meta = {
@@ -12362,6 +12394,22 @@ let
     };
   };
 
+  MojoliciousPluginWebpack = buildPerlPackage {
+    pname = "Mojolicious-Plugin-Webpack";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Webpack-0.12.tar.gz";
+      sha256 = "2a0856e68446fc22b46692d9a6737f78467654f31e58ad1935e708bddf806d2c";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/jhthorsen/mojolicious-plugin-webpack";
+      description = "Mojolicious <3 Webpack";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   MojoRedis = buildPerlPackage {
     pname = "Mojo-Redis";
     version = "3.24";
@@ -14718,6 +14766,21 @@ let
     };
   };
 
+  ParseIRC = buildPerlPackage {
+    pname = "Parse-IRC";
+    version = "1.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Parse-IRC-1.22.tar.gz";
+      sha256 = "457b09897f37d38a7054f9563247365427fe24101622ed4c7f054723a45b58d5";
+    };
+    meta = {
+      homepage = "https://github.com/bingos/parse-irc";
+      description = "A parser for the IRC protocol";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   ParseLocalDistribution = buildPerlPackage {
      pname = "Parse-LocalDistribution";
      version = "0.19";
@@ -20374,6 +20437,21 @@ let
     };
   };
 
+  TimePiece = buildPerlPackage {
+    pname = "Time-Piece";
+    version = "1.3401";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ES/ESAYM/Time-Piece-1.3401.tar.gz";
+      sha256 = "4b55b7bb0eab45cf239a54dfead277dfa06121a43e63b3fce0853aecfdb04c27";
+    };
+    meta = {
+      description = "Object Oriented time objects";
+      homepage = "https://metacpan.org/release/Time-Piece";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   Tirex = buildPerlPackage rec {
     pname = "Tirex";
     version = "0.6.1";
@@ -20635,6 +20713,22 @@ let
     };
   };
 
+  UnicodeUTF8 = buildPerlPackage {
+    pname = "Unicode-UTF8";
+    version = "0.62";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/Unicode-UTF8-0.62.tar.gz";
+      sha256 = "fa8722d0b74696e332fddd442994436ea93d3bfc7982d4babdcedfddd657d0f6";
+    };
+    buildInputs = [ TestFatal ];
+    meta = {
+      homepage = "https://github.com/chansen/p5-unicode-utf8";
+      description = "Encoding and decoding of UTF-8 encoding form";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   UnixGetrusage = buildPerlPackage {
     pname = "Unix-Getrusage";
     version = "0.03";