summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2016-01-15 13:43:57 +0100
committerVladimír Čunát <vcunat@gmail.com>2016-01-15 13:43:57 +0100
commit2d0893088fff99e1c0c438ba7b4c42ac6769af75 (patch)
tree771ce9e6e1020b623ea4c65b84bf05bd7ee24821 /pkgs/tools
parent4e9575c314baab5e45a95785918c721f7fed45e3 (diff)
parentc29df5f8a7122fbc9411765156ab42c12baadbbb (diff)
downloadnixlib-2d0893088fff99e1c0c438ba7b4c42ac6769af75.tar
nixlib-2d0893088fff99e1c0c438ba7b4c42ac6769af75.tar.gz
nixlib-2d0893088fff99e1c0c438ba7b4c42ac6769af75.tar.bz2
nixlib-2d0893088fff99e1c0c438ba7b4c42ac6769af75.tar.lz
nixlib-2d0893088fff99e1c0c438ba7b4c42ac6769af75.tar.xz
nixlib-2d0893088fff99e1c0c438ba7b4c42ac6769af75.tar.zst
nixlib-2d0893088fff99e1c0c438ba7b4c42ac6769af75.zip
Merge branch 'master' into staging
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/setroot/default.nix31
-rw-r--r--pkgs/tools/admin/simp_le/default.nix10
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix69
-rw-r--r--pkgs/tools/backup/borg/default.nix7
-rw-r--r--pkgs/tools/compression/xdelta/default.nix29
-rw-r--r--pkgs/tools/compression/xdelta/unstable.nix67
-rw-r--r--pkgs/tools/filesystems/f2fs-tools/default.nix4
-rw-r--r--pkgs/tools/graphics/gnuplot/set-gdfontpath-from-fontconfig.sh2
-rw-r--r--pkgs/tools/graphics/jhead/default.nix7
-rw-r--r--pkgs/tools/graphics/pngcrush/default.nix8
-rw-r--r--pkgs/tools/graphics/qrdecode/default.nix29
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix21
-rw-r--r--pkgs/tools/misc/grub4dos/default.nix6
-rw-r--r--pkgs/tools/misc/ltunify/default.nix21
-rw-r--r--pkgs/tools/misc/mcrypt/default.nix12
-rw-r--r--pkgs/tools/misc/mcrypt/format-string.patch31
-rw-r--r--pkgs/tools/misc/mcrypt/overflow.patch24
-rw-r--r--pkgs/tools/misc/mcrypt/segv.patch39
-rw-r--r--pkgs/tools/misc/mcrypt/sprintf.patch108
-rw-r--r--pkgs/tools/misc/pg_top/default.nix14
-rw-r--r--pkgs/tools/misc/screenfetch/default.nix6
-rw-r--r--pkgs/tools/misc/testdisk/default.nix6
-rw-r--r--pkgs/tools/misc/tlp/default.nix4
-rw-r--r--pkgs/tools/misc/tmate/default.nix12
-rw-r--r--pkgs/tools/misc/ttylog/default.nix6
-rw-r--r--pkgs/tools/misc/txtw/default.nix25
-rw-r--r--pkgs/tools/misc/xfstests/default.nix86
-rw-r--r--pkgs/tools/misc/xmltv/default.nix16
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix8
-rw-r--r--pkgs/tools/networking/aircrack-ng/default.nix10
-rw-r--r--pkgs/tools/networking/axel/default.nix2
-rw-r--r--pkgs/tools/networking/easyrsa/default.nix62
-rw-r--r--pkgs/tools/networking/easyrsa/fix-paths.patch33
-rw-r--r--pkgs/tools/networking/fuppes/default.nix56
-rw-r--r--pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch91
-rw-r--r--pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--pkgs/tools/networking/isync/unstable.nix29
-rw-r--r--pkgs/tools/networking/minissdpd/default.nix4
-rw-r--r--pkgs/tools/networking/miniupnpd/default.nix4
-rw-r--r--pkgs/tools/networking/nethogs/default.nix19
-rw-r--r--pkgs/tools/networking/ntop/default.nix27
-rw-r--r--pkgs/tools/networking/openssh/default.nix11
-rw-r--r--pkgs/tools/networking/openssh/disable-roaming.patch51
-rw-r--r--pkgs/tools/networking/p2p/gtk-gnutella/default.nix18
-rw-r--r--pkgs/tools/networking/stunnel/default.nix4
-rw-r--r--pkgs/tools/networking/zap/default.nix36
-rw-r--r--pkgs/tools/package-management/nix/default.nix6
-rw-r--r--pkgs/tools/security/eid-mw/default.nix4
-rw-r--r--pkgs/tools/security/muscleframework/default.nix31
-rw-r--r--pkgs/tools/security/muscletool/default.nix20
-rw-r--r--pkgs/tools/security/opensc-dnie-wrapper/default.nix67
-rw-r--r--pkgs/tools/security/pamtester/default.nix20
-rw-r--r--pkgs/tools/security/pinentry-mac/default.nix26
-rw-r--r--pkgs/tools/security/sshuttle/default.nix50
-rw-r--r--pkgs/tools/security/sshuttle/sudo.patch13
-rw-r--r--pkgs/tools/security/tor/torbrowser.nix17
-rw-r--r--pkgs/tools/system/pciutils/default.nix4
-rw-r--r--pkgs/tools/text/dos2unix/default.nix4
-rw-r--r--pkgs/tools/text/mairix/default.nix4
-rw-r--r--pkgs/tools/text/mairix/mmap.patch110
-rw-r--r--pkgs/tools/text/silver-searcher/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/latex2html/default.nix27
-rw-r--r--pkgs/tools/virtualization/azure-cli/default.nix20
-rw-r--r--pkgs/tools/virtualization/azure-cli/node-packages.json1
-rw-r--r--pkgs/tools/virtualization/azure-cli/node-packages.nix4965
65 files changed, 5974 insertions, 588 deletions
diff --git a/pkgs/tools/X11/setroot/default.nix b/pkgs/tools/X11/setroot/default.nix
new file mode 100644
index 000000000000..74e0ed8d029c
--- /dev/null
+++ b/pkgs/tools/X11/setroot/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, fetchFromGitHub, libX11, imlib2
+, enableXinerama ? true, libXinerama ? null
+}:
+
+assert enableXinerama -> libXinerama != null;
+
+stdenv.mkDerivation rec {
+  version = "1.4.4";
+  name = "setroot-${version}";
+
+  src = fetchFromGitHub {
+    owner = "ttzhou";
+    repo = "setroot";
+    rev = "v${version}";
+    sha256 = "0vphma0as8pnqrakdw6gaiiz7xawb4y72sc9dna755kkclgbyl8m";
+  };
+
+  buildInputs = [ libX11 imlib2 ]
+    ++ stdenv.lib.optional enableXinerama libXinerama;
+
+  buildFlags = if enableXinerama then "xinerama=1" else "xinerama=0";
+
+  installFlags = "DESTDIR=$(out) PREFIX=";
+
+  meta = with stdenv.lib; {
+    description = "Simple X background setter inspired by imlibsetroot and feh";
+    homepage = https://github.com/ttzhou/setroot;
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/admin/simp_le/default.nix b/pkgs/tools/admin/simp_le/default.nix
index 43e361ba6471..f6b352056fa0 100644
--- a/pkgs/tools/admin/simp_le/default.nix
+++ b/pkgs/tools/admin/simp_le/default.nix
@@ -1,22 +1,22 @@
 { stdenv, fetchFromGitHub, pythonPackages }:
 
 pythonPackages.buildPythonPackage rec {
-  name = "simp_le-20151207";
+  name = "simp_le-2016-01-09";
 
   src = fetchFromGitHub {
     owner = "kuba";
     repo = "simp_le";
-    rev = "ac836bc0af988cb14dc0a83dc2039e7fa541b677";
-    sha256 = "0r07mlis81n0pmj74wjcvjpi6i3lkzs6hz8iighhk8yymn1a8rbn";
+    rev = "b9d95e862536d1242e1ca6d7dac5691f32f11373";
+    sha256 = "0l4qs0y4cbih76zrpbkn77xj17iwsm5fi83zc3p048x4hj163805";
   };
 
   propagatedBuildInputs = with pythonPackages; [ acme ];
 
   meta = with stdenv.lib; {
-    homepage = https://github.com/kuba/simp_le;
+    inherit (src.meta) homepage;
     description = "Simple Let's Encrypt client";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ gebner ];
+    maintainers = with maintainers; [ gebner nckx ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index f2c18bd7f942..d6156ab49099 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -1,95 +1,86 @@
-{ stdenv, fetchgit, libX11, libXext, gettext, libICE, libXtst, libXi, libSM, xorgserver
-, autoconf, automake, cvs, libtool, nasm, utilmacros, pixman, xkbcomp, xkeyboard_config
-, fontDirectories, fontutil, libgcrypt, gnutls, pam, flex, bison
-, fixesproto, damageproto, xcmiscproto, bigreqsproto, randrproto, renderproto
-, fontsproto, videoproto, compositeproto, scrnsaverproto, resourceproto
-, libxkbfile, libXfont, libpciaccess, cmake, libjpeg_turbo, libXft, fltk, libXinerama
-, xineramaproto, libXcursor
+{ stdenv, fetchgit, xorg
+, autoconf, automake, cvs, libtool, nasm, pixman, xkeyboard_config
+, fontDirectories, libgcrypt, gnutls, pam, flex, bison, gettext
+, cmake, libjpeg_turbo, fltk
 }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "git-20150504";
+  version = "1.6.0";
   name = "tigervnc-${version}";
 
   src = fetchgit {
     url = "https://github.com/TigerVNC/tigervnc/";
-    sha256 = "1ib8f870wqa8kpvif01fvd2690dhq7fg233pc78pl9ag6pxlihmn";
-    rev = "bc84faa2f366ed8fa0f44abc7e3e481e0a54859d";
+    sha256 = "1plljv1cxsax88kv52g02n8c1hzwgp6j1p8z1aqhskw36shg4pij";
+    rev = "5a727f25990d05c9a1f85457b45d6aed66409cb3";
   };
 
   inherit fontDirectories;
 
   patchPhase = ''
     sed -i -e 's,$(includedir)/pixman-1,${if stdenv ? cross then pixman.crossDrv else pixman}/include/pixman-1,' unix/xserver/hw/vnc/Makefile.am
-    sed -i -e '/^$pidFile/a$ENV{XKB_BINDIR}="${if stdenv ? cross then xkbcomp.crossDrv else xkbcomp}/bin";' unix/vncserver
+    sed -i -e '/^$pidFile/a$ENV{XKB_BINDIR}="${if stdenv ? cross then xorg.xkbcomp.crossDrv else xorg.xkbcomp}/bin";' unix/vncserver
     sed -i -e '/^\$cmd \.= " -pn";/a$cmd .= " -xkbdir ${if stdenv ? cross then xkeyboard_config.crossDrv else xkeyboard_config}/etc/X11/xkb";' unix/vncserver
-
     fontPath=
     for i in $fontDirectories; do
       for j in $(find $i -name fonts.dir); do
         addToSearchPathWithCustomDelimiter "," fontPath $(dirname $j)
       done
     done
-
     sed -i -e '/^\$cmd \.= " -pn";/a$cmd .= " -fp '"$fontPath"'";' unix/vncserver
   '';
 
-  # I don't know why I can't use in the script
-  # this:  ${concatStringsSep " " (map (f: "${f}") xorgserver.patches)}
-  xorgPatches = xorgserver.patches;
-
-  dontUseCmakeBuildDir = "yes";
+  dontUseCmakeBuildDir = true;
 
   postBuild = ''
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fpermissive -Wno-error=int-to-pointer-cast"
-
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error=int-to-pointer-cast"
+    export CXXFLAGS="$CXXFLAGS -fpermissive"
     # Build Xvnc
-    tar xf ${xorgserver.src}
+    tar xf ${xorg.xorgserver.src}
     cp -R xorg*/* unix/xserver
     pushd unix/xserver
-    for a in $xorgPatches ../xserver116.patch
-    do
-      patch -p1 < $a
-    done
     autoreconf -vfi
-    ./configure $configureFlags --disable-xinerama --disable-xvfb --disable-xnest \
+    ./configure $configureFlags --disable-devel-docs --disable-docs --disable-xinerama --disable-xvfb --disable-xnest \
         --disable-xorg --disable-dmx --disable-dri --disable-dri2 --disable-glx \
         --prefix="$out" --disable-unit-tests \
         --with-xkb-path=${xkeyboard_config}/share/X11/xkb \
-        --with-xkb-bin-directory=${xkbcomp}/bin \
+        --with-xkb-bin-directory=${xorg.xkbcomp}/bin \
         --with-xkb-output=$out/share/X11/xkb/compiled
     make TIGERVNC_SRCDIR=`pwd`/../..
     popd
   '';
-
+  
   postInstall = ''
     pushd unix/xserver
     make TIGERVNC_SRCDIR=`pwd`/../.. install
+    popd
+    rm -f $out/lib/xorg/protocol.txt
   '';
 
   crossAttrs = {
     buildInputs = (map (x : x.crossDrv) (buildInputs ++ [
-      fixesproto damageproto xcmiscproto bigreqsproto randrproto renderproto
-      fontsproto videoproto compositeproto scrnsaverproto resourceproto
-      libxkbfile libXfont libpciaccess xineramaproto
+      xorg.fixesproto xorg.damageproto xorg.xcmiscproto xorg.bigreqsproto xorg.randrproto xorg.renderproto
+      xorg.fontsproto xorg.videoproto xorg.compositeproto xorg.scrnsaverproto xorg.resourceproto
+      xorg.libxkbfile xorg.libXfont xorg.libpciaccess xorg.xineramaproto
     ]));
   };
 
   buildInputs =
-    [ libX11 libXext gettext libICE libXtst libXi libSM libXft
-      nasm libgcrypt gnutls pam pixman libjpeg_turbo fltk xineramaproto
-      libXinerama libXcursor
+    [ xorg.libX11 xorg.libXext gettext xorg.libICE xorg.libXtst xorg.libXi xorg.libSM xorg.libXft
+      nasm libgcrypt gnutls pam pixman libjpeg_turbo fltk xorg.xineramaproto
+      xorg.libXinerama xorg.libXcursor
     ];
 
   nativeBuildInputs =
-    [ autoconf automake cvs utilmacros fontutil libtool flex bison
+    [ autoconf automake cvs xorg.utilmacros xorg.fontutil libtool flex bison
       cmake
     ]
-      ++ xorgserver.nativeBuildInputs;
+      ++ xorg.xorgserver.nativeBuildInputs;
+
+  propagatedNativeBuildInputs = xorg.xorgserver.propagatedNativeBuildInputs;
 
-  propagatedNativeBuildInputs = xorgserver.propagatedNativeBuildInputs;
+  enableParallelBuilding = true;
 
   meta = {
     homepage = http://www.tigervnc.org/;
@@ -97,5 +88,7 @@ stdenv.mkDerivation rec {
     description = "Fork of tightVNC, made in cooperation with VirtualGL";
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux;
+    # Prevent a store collision.
+    priority = 4;
   };
-}
+}
\ No newline at end of file
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index df3523322e86..a68a5a7313e5 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonPackage rec {
   name = "borgbackup-${version}";
-  version = "0.27.0";
+  version = "0.29.0";
   namePrefix = "";
 
   src = fetchurl {
     url = "https://pypi.python.org/packages/source/b/borgbackup/borgbackup-${version}.tar.gz";
-    sha256 = "04iizidag4fwy6kx1747d633s1amr81slgk743qsfbwixaxfjq9b";
+    sha256 = "1gvx036a7j16hd5rg8cr3ibiig7gwqhmddrilsakcw4wnfimjy5m";
   };
 
   propagatedBuildInputs = with python3Packages;
@@ -16,8 +16,6 @@ python3Packages.buildPythonPackage rec {
   preConfigure = ''
     export BORG_OPENSSL_PREFIX="${openssl}"
     export BORG_LZ4_PREFIX="${lz4}"
-    # note: fix for this issue already upstream and probably in 0.27.1 (or whatever the next release is called)
-    substituteInPlace setup.py --replace "possible_openssl_prefixes.insert(0, os.environ.get('BORG_LZ4_PREFIX'))" "possible_lz4_prefixes.insert(0, os.environ.get('BORG_LZ4_PREFIX'))"
   '';
 
   meta = with stdenv.lib; {
@@ -25,5 +23,6 @@ python3Packages.buildPythonPackage rec {
     homepage = https://borgbackup.github.io/;
     license = licenses.bsd3;
     platforms = platforms.unix; # Darwin and FreeBSD mentioned on homepage
+    maintainers = with maintainers; [ nckx ];
   };
 }
diff --git a/pkgs/tools/compression/xdelta/default.nix b/pkgs/tools/compression/xdelta/default.nix
index 6fdf555986b9..396099df41cc 100644
--- a/pkgs/tools/compression/xdelta/default.nix
+++ b/pkgs/tools/compression/xdelta/default.nix
@@ -1,22 +1,36 @@
-{ stdenv, fetchFromGitHub, autoreconfHook }:
+{ stdenv, fetchFromGitHub, autoreconfHook
+, lzmaSupport ? true, xz ? null
+}:
 
-let version = "3.0.10"; in
-stdenv.mkDerivation {
+assert lzmaSupport -> xz != null;
+
+let
+  version = "3.0.11";
+  mkWith = flag: name: if flag
+    then "--with-${name}"
+    else "--without-${name}";
+in stdenv.mkDerivation {
   name = "xdelta-${version}";
-  
+
   src = fetchFromGitHub {
-    sha256 = "0wwxdr01var3f90iwi1lgjpsa4y549g850hyyix5cm0qk67ck4rg";
+    sha256 = "1c7xym7xr26phyf4wb9hh2w88ybzbzh2w3h1kyqq3da0ndidmf2r";
     rev = "v${version}";
     repo = "xdelta-devel";
     owner = "jmacd";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = []
+    ++ stdenv.lib.optionals lzmaSupport [ xz ];
 
   postPatch = ''
     cd xdelta3
   '';
 
+  configureFlags = [
+    (mkWith lzmaSupport "liblzma")
+  ];
+
   enableParallelBuilding = true;
 
   doCheck = true;
@@ -36,6 +50,11 @@ stdenv.mkDerivation {
   meta = with stdenv.lib; {
     inherit version;
     description = "Binary differential compression in VCDIFF (RFC 3284) format";
+    longDescription = ''
+      xdelta is a command line program for delta encoding, which generates two
+      file differences. This is similar to diff and patch, but it is targeted
+      for binary files and does not generate human readable output.
+    '';
     homepage = http://xdelta.org/;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/tools/compression/xdelta/unstable.nix b/pkgs/tools/compression/xdelta/unstable.nix
new file mode 100644
index 000000000000..a19fb4de68a4
--- /dev/null
+++ b/pkgs/tools/compression/xdelta/unstable.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchFromGitHub, autoreconfHook
+, lzmaSupport ? true, xz ? null
+}:
+
+assert lzmaSupport -> xz != null;
+
+let
+  version = "3.1.0";
+  mkWith = flag: name: if flag
+    then "--with-${name}"
+    else "--without-${name}";
+in stdenv.mkDerivation {
+  name = "xdelta-${version}";
+
+  src = fetchFromGitHub {
+    sha256 = "09mmsalc7dwlvgrda56s2k927rpl3a5dzfa88aslkqcjnr790wjy";
+    rev = "v${version}";
+    repo = "xdelta-devel";
+    owner = "jmacd";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = []
+    ++ stdenv.lib.optionals lzmaSupport [ xz ];
+
+  postPatch = ''
+    cd xdelta3
+
+    substituteInPlace Makefile.am --replace \
+      "common_CFLAGS =" \
+      "common_CFLAGS = -DXD3_USE_LARGESIZET=1"
+  '';
+
+  configureFlags = [
+    (mkWith lzmaSupport "liblzma")
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+  checkPhase = ''
+    mkdir $PWD/tmp
+    for i in testing/file.h xdelta3-test.h; do
+      substituteInPlace $i --replace /tmp $PWD/tmp
+    done
+    ./xdelta3regtest
+  '';
+
+  installPhase = ''
+    install -D -m755 xdelta3 $out/bin/xdelta3
+    install -D -m644 xdelta3.1 $out/share/man/man1/xdelta3.1
+  '';
+
+  meta = with stdenv.lib; {
+    inherit version;
+    description = "Binary differential compression in VCDIFF (RFC 3284) format";
+    longDescription = ''
+      xdelta is a command line program for delta encoding, which generates two
+      file differences. This is similar to diff and patch, but it is targeted
+      for binary files and does not generate human readable output.
+    '';
+    homepage = http://xdelta.org/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nckx ];
+  };
+}
diff --git a/pkgs/tools/filesystems/f2fs-tools/default.nix b/pkgs/tools/filesystems/f2fs-tools/default.nix
index 36ffce9cdfe8..36e95ab2d6a9 100644
--- a/pkgs/tools/filesystems/f2fs-tools/default.nix
+++ b/pkgs/tools/filesystems/f2fs-tools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, autoreconfHook, libuuid }:
+{ stdenv, fetchurl, autoreconfHook, libuuid, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "f2fs-tools-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ libuuid ];
+  buildInputs = [ libuuid pkgconfig ];
 
   meta = with stdenv.lib; {
     homepage = "http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git/";
diff --git a/pkgs/tools/graphics/gnuplot/set-gdfontpath-from-fontconfig.sh b/pkgs/tools/graphics/gnuplot/set-gdfontpath-from-fontconfig.sh
index 4886b4f2b7c0..92ad2e97b5b4 100644
--- a/pkgs/tools/graphics/gnuplot/set-gdfontpath-from-fontconfig.sh
+++ b/pkgs/tools/graphics/gnuplot/set-gdfontpath-from-fontconfig.sh
@@ -1,4 +1,4 @@
-p=( $(for n in $(fc-list | sed -r -e 's|^([^:]+):.*$|\1|'); do echo $(dirname "$n"); done | sort | uniq) )
+p=( $(fc-list : file | sed "s@/[^/]*: @@" | sort -u) )
 IFS=:
 export GDFONTPATH="${GDFONTPATH}${GDFONTPATH:+:}${p[*]}"
 unset IFS p
diff --git a/pkgs/tools/graphics/jhead/default.nix b/pkgs/tools/graphics/jhead/default.nix
index 470a2efdf6ba..dfbd7c4e5e06 100644
--- a/pkgs/tools/graphics/jhead/default.nix
+++ b/pkgs/tools/graphics/jhead/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, libjpeg }:
 
 stdenv.mkDerivation rec {
   name = "jhead-${version}";
@@ -9,12 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "0pl9s9ssb2a9di82f3ypin2hd098ns8kzdsxw3i2y94f07d03k48";
   };
 
+  buildInputs = [ libjpeg ];
+
   patchPhase = ''
     substituteInPlace makefile \
       --replace /usr/local/bin $out/bin
 
     substituteInPlace jhead.c \
-      --replace "\"   Compiled: \"__DATE__" ""
+      --replace "\"   Compiled: \"__DATE__" "" \
+      --replace "jpegtran -trim" "${libjpeg}/bin/jpegtran -trim"
   '';
 
   installPhase = ''
diff --git a/pkgs/tools/graphics/pngcrush/default.nix b/pkgs/tools/graphics/pngcrush/default.nix
index cc086da5a132..6a6f3e7b13c6 100644
--- a/pkgs/tools/graphics/pngcrush/default.nix
+++ b/pkgs/tools/graphics/pngcrush/default.nix
@@ -1,13 +1,15 @@
 { stdenv, fetchurl, libpng }:
 
 stdenv.mkDerivation rec {
-  name = "pngcrush-1.7.85";
+  name = "pngcrush-1.7.92";
 
   src = fetchurl {
     url = "mirror://sourceforge/pmt/${name}-nolib.tar.xz";
-    sha256 = "1hvcync32x2ign694scafkj7xc73gzyy8n2l5z026yxckilyyv19";
+    sha256 = "0dlwbqckv90cpvg8qhkl3nk5yb75ddi61vbpmmp9n0j6qq9lp6y4";
   };
 
+  makeFlags = [ "CC=cc" "LD=cc" ];      # gcc and/or clang compat
+
   configurePhase = ''
     sed -i s,/usr,$out, Makefile
   '';
@@ -18,7 +20,7 @@ stdenv.mkDerivation rec {
     homepage = http://pmt.sourceforge.net/pngcrush;
     description = "A PNG optimizer";
     license = stdenv.lib.licenses.free;
-    platforms = with stdenv.lib.platforms; linux;
+    platforms = with stdenv.lib.platforms; linux ++ darwin;
     maintainers = with stdenv.lib.maintainers; [ the-kenny ];
   };
 }
diff --git a/pkgs/tools/graphics/qrdecode/default.nix b/pkgs/tools/graphics/qrdecode/default.nix
deleted file mode 100644
index 308183d7ae11..000000000000
--- a/pkgs/tools/graphics/qrdecode/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchurl, libpng, opencv }:
-
-stdenv.mkDerivation rec {
-  name = "libdecodeqr-${version}";
-  version = "0.9.3";
-
-  src = fetchurl {
-    url = "mirror://debian/pool/main/libd/libdecodeqr/libdecodeqr_${version}.orig.tar.gz";
-    sha256 = "1kmljwx69h7zq6zlp2j19bbpz11px45z1abw03acrxjyzz5f1f13";
-  };
-
-  buildInputs = [ libpng opencv ];
-
-  preConfigure = ''
-    cd src
-    sed -e /LDCONFIG/d -i libdecodeqr/Makefile.in
-    sed -e '/#include <cv.h>/a#include <ml.h>' -i libdecodeqr/imagereader.h
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${opencv}/include/opencv"
-    export NIX_LDFLAGS="$NIX_LDFLAGS -lcxcore"
-  '';
-
-  preInstall = "mkdir -p $out/bin $out/lib $out/include $out/share";
-  postInstall = "cp sample/simple/simpletest $out/bin/qrdecode";
-
-  meta = {
-    description = "QR code decoder library";
-    broken = true;
-  };
-}
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 7fe21e8b3474..6715f1ac38fd 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -1,20 +1,29 @@
-{ stdenv, fetchgit, pythonPackages, docutils
+{ lib, stdenv, fetchgit, fetchpatch, pythonPackages, docutils
 , acl, binutils, bzip2, cbfstool, cdrkit, cpio, diffutils, e2fsprogs, file, fpc, gettext, ghc, gnupg1
 , gzip, jdk, libcaca, mono, pdftk, poppler_utils, rpm, sng, sqlite, squashfsTools, unzip, vim, xz
+, enableBloat ? false
 }:
 
 pythonPackages.buildPythonPackage rec {
   name = "diffoscope-${version}";
-  version = "44";
+  version = "45";
 
   namePrefix = "";
 
   src = fetchgit {
     url = "git://anonscm.debian.org/reproducible/diffoscope.git";
     rev = "refs/tags/${version}";
-    sha256 = "1sisdmh1bl62b16yfjy9mxxdfzhskrabp0l3pl1kxn7db0c4vpac";
+    sha256 = "1wdphcmr2n0pyg7zwvczy7ik1bzjlrjb76jwbzk971lwba3ajazk";
   };
 
+  patches =
+    [ # Ignore different link counts and inode change times.
+      (fetchpatch {
+        url = https://github.com/edolstra/diffoscope/commit/367f77bba8df0dbc89e63c9f66f05736adf5ec59.patch;
+        sha256 = "0mnp7icdrjn02dr6f5dwqvvr848jzgkv3cg69a24234y9gxd30ww";
+      })
+    ];
+
   postPatch = ''
     # Upstream doesn't provide a PKG-INFO file
     sed -i setup.py -e "/'rpm-python',/d"
@@ -22,9 +31,11 @@ pythonPackages.buildPythonPackage rec {
 
   # Still missing these tools: enjarify otool(maybe OS X only) showttf
   # Also these libraries: python3-guestfs
+  # FIXME: move xxd into a separate package so we don't have to pull in all of vim.
   propagatedBuildInputs = (with pythonPackages; [ debian libarchive-c python_magic tlsh ]) ++
-    [ acl binutils bzip2 cbfstool cdrkit cpio diffutils e2fsprogs file fpc gettext ghc gnupg1
-      gzip jdk libcaca mono pdftk poppler_utils rpm sng sqlite squashfsTools unzip vim xz ];
+    [ acl binutils bzip2 cbfstool cdrkit cpio diffutils e2fsprogs file gettext
+      gzip libcaca poppler_utils rpm sng sqlite squashfsTools unzip vim xz
+    ] ++ lib.optionals enableBloat [ jdk ghc fpc gnupg1 pdftk mono ];
 
   doCheck = false; # Calls 'mknod' in squashfs tests, which needs root
 
diff --git a/pkgs/tools/misc/grub4dos/default.nix b/pkgs/tools/misc/grub4dos/default.nix
index 18464574d440..c59869c0dc7e 100644
--- a/pkgs/tools/misc/grub4dos/default.nix
+++ b/pkgs/tools/misc/grub4dos/default.nix
@@ -5,11 +5,11 @@ let arch =
   else if stdenv.isx86_64 then "x86_64"
   else abort "Unknown architecture";
 in stdenv.mkDerivation {
-  name = "grub4dos-0.4.6a";
+  name = "grub4dos-0.4.6a-2015-12-31";
 
   src = fetchurl {
-    url = https://github.com/chenall/grub4dos/archive/e855b293432bd4d155e42d48356f9aa1974ec385.zip;
-    sha256 = "1vihzllsdshd5dyr7i7dp5ragyg77gg8r279pz954p7lkcda4kx7";
+    url = https://github.com/chenall/grub4dos/archive/a8024743c61cc4909514b27df07b7cc4bc89d1fb.zip;
+    sha256 = "1m5d7klb12qz5sa09919z7jchfafgh84cmpwilp52qnbpi3zh2fd";
   };
 
   nativeBuildInputs = [ unzip nasm ];
diff --git a/pkgs/tools/misc/ltunify/default.nix b/pkgs/tools/misc/ltunify/default.nix
new file mode 100644
index 000000000000..0329581bfaab
--- /dev/null
+++ b/pkgs/tools/misc/ltunify/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation rec {
+  name = "ltunify-20140331";
+
+  src = fetchgit {
+    url = "https://git.lekensteyn.nl/ltunify.git";
+    rev = "c3a263ff97bcd31e96abbfed33d066f8d2778f58";
+    sha256 = "0zjw064fl9f73ppl9c37wsfhp6296yx65m1gis2n2ia6arlnh45q";
+  };
+
+  makeFlags = [ "DESTDIR=$(out)" "bindir=/bin" ];
+
+  meta = with stdenv.lib; {
+    description = "Tool for working with Logitech Unifying receivers and devices";
+    homepage = https://lekensteyn.nl/logitech-unifying.html;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.abbradar ];
+  };
+}
diff --git a/pkgs/tools/misc/mcrypt/default.nix b/pkgs/tools/misc/mcrypt/default.nix
index ffd8966a80eb..52c96fda1973 100644
--- a/pkgs/tools/misc/mcrypt/default.nix
+++ b/pkgs/tools/misc/mcrypt/default.nix
@@ -1,16 +1,18 @@
 { stdenv, fetchurl, libmcrypt, libmhash }:
- 
+
 stdenv.mkDerivation rec {
   version = "2.6.8";
   name = "mcrypt-${version}";
-  
+
   src = fetchurl {
     url = "mirror://sourceforge/mcrypt/MCrypt/${version}/${name}.tar.gz";
     sha256 = "5145aa844e54cca89ddab6fb7dd9e5952811d8d787c4f4bf27eb261e6c182098";
   };
- 
-  buildInputs = [libmcrypt libmhash];
- 
+
+  patches = [ ./format-string.patch ./overflow.patch ./segv.patch ./sprintf.patch ];
+
+  buildInputs = [ libmcrypt libmhash ];
+
   meta = {
     description = "Replacement for old UNIX crypt(1)";
     longDescription = ''
diff --git a/pkgs/tools/misc/mcrypt/format-string.patch b/pkgs/tools/misc/mcrypt/format-string.patch
new file mode 100644
index 000000000000..322ab473811f
--- /dev/null
+++ b/pkgs/tools/misc/mcrypt/format-string.patch
@@ -0,0 +1,31 @@
+--- mcrypt-2.6.8/src/errors.c
++++ mcrypt-2.6.8/src/errors.c
+@@ -25,24 +25,24 @@
+
+ void err_quit(char *errmsg)
+ {
+-	fprintf(stderr, errmsg);
++	fprintf(stderr, "%s", errmsg);
+ 	exit(-1);
+ }
+
+ void err_warn(char *errmsg)
+ {
+ 	if (quiet <= 1)
+-		fprintf(stderr, errmsg);
++		fprintf(stderr, "%s", errmsg);
+ }
+
+ void err_info(char *errmsg)
+ {
+ 	if (quiet == 0)
+-		fprintf(stderr, errmsg);
++		fprintf(stderr, "%s", errmsg);
+ }
+
+ void err_crit(char *errmsg)
+ {
+ 	if (quiet <= 2)
+-		fprintf(stderr, errmsg);
++		fprintf(stderr, "%s", errmsg);
+ }
diff --git a/pkgs/tools/misc/mcrypt/overflow.patch b/pkgs/tools/misc/mcrypt/overflow.patch
new file mode 100644
index 000000000000..bf747a58266a
--- /dev/null
+++ b/pkgs/tools/misc/mcrypt/overflow.patch
@@ -0,0 +1,24 @@
+From 3efb40e17ce4f76717ae17a1ce1e1f747ddf59fd Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Sat, 22 Dec 2012 22:37:06 +0200
+Subject: [PATCH] cleanup: buffer overflow
+
+---
+ mcrypt-2.6.8/src/extra.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/mcrypt-2.6.8/src/extra.c b/mcrypt-2.6.8/src/extra.c
+index 3082f82..c7a1ac0 100644
+--- a/src/extra.c
++++ b/src/extra.c
+@@ -241,6 +241,8 @@ int check_file_head(FILE * fstream, char *algorithm, char *mode,
+ 		if (m_getbit(6, flags) == 1) { /* if the salt bit is set */
+ 			if (m_getbit(0, sflag) != 0) { /* if the first bit is set */
+ 				*salt_size = m_setbit(0, sflag, 0);
++				if (*salt_size > sizeof(tmp_buf))
++					err_quit(_("Salt is too long\n"));
+ 				if (*salt_size > 0) {
+ 					fread(tmp_buf, 1, *salt_size,
+ 					      fstream);
+--
+1.7.8.6
diff --git a/pkgs/tools/misc/mcrypt/segv.patch b/pkgs/tools/misc/mcrypt/segv.patch
new file mode 100644
index 000000000000..6796163418f5
--- /dev/null
+++ b/pkgs/tools/misc/mcrypt/segv.patch
@@ -0,0 +1,39 @@
+From 5bee29fae8f0e936ad4c957aef6035d09532a57a Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Sat, 22 Dec 2012 22:04:27 +0200
+Subject: [PATCH] cleanup: fixup segv on buffer access
+
+use exact buffer size instead of guess.
+
+do not copy out of source buffer.
+
+Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
+---
+ mcrypt-2.6.8/src/rfc2440.c |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/mcrypt-2.6.8/src/rfc2440.c b/mcrypt-2.6.8/src/rfc2440.c
+index 5a1f296..929b9ab 100644
+--- a/src/rfc2440.c
++++ b/src/rfc2440.c
+@@ -497,7 +497,7 @@ plaintext_encode(const USTRING dat)
+     time_t t;
+
+     assert(dat->len > 0);
+-    result = make_ustring( NULL,  2 * dat->len); /* xxx */
++    result = make_ustring( NULL,  dat->len + 12); /* xxx */
+     newdat = (USTRING)dat;
+     result->d[pos++] = (0x80 | 0x40 | PKT_PLAINTEXT);
+
+@@ -810,7 +810,8 @@ encrypted_encode(const USTRING pt, const DEK *dek)
+     _mcrypt_encrypt(dek->hd, rndpref, dek->blocklen + 2, NULL, 0);
+     _mcrypt_sync(dek->hd, rndpref, dek->blocklen);
+
+-    ct = make_ustring( rndpref,   2 * pt->len); /* xxx */
++    ct = make_ustring( NULL, dek->blocklen + 2 + pt->len + 12); /* xxx */
++    memcpy(ct->d, rndpref, dek->blocklen + 2);
+     pos = dek->blocklen + 2;
+
+     _mcrypt_encrypt(dek->hd, ct->d + pos, pt->len, pt->d, pt->len);
+--
+1.7.8.6
diff --git a/pkgs/tools/misc/mcrypt/sprintf.patch b/pkgs/tools/misc/mcrypt/sprintf.patch
new file mode 100644
index 000000000000..1c9ade807778
--- /dev/null
+++ b/pkgs/tools/misc/mcrypt/sprintf.patch
@@ -0,0 +1,108 @@
+Description: [CVE-2012-4527] Stack-based buffer overflow with long file names
+ .
+ A buffer overflow in mcrypt version 2.6.8 and earlier due to long filenames.
+ If a user were tricked into attempting to encrypt/decrypt specially crafted
+ long filename(s), this flaw would cause a stack-based buffer overflow that
+ could potentially lead to arbitrary code execution.
+ .
+ Note that this is caught by FORTIFY_SOURCE, which makes this a crash-only
+ bug on wheezy.
+Author: Attila Bogar, Jean-Michel Vourgère <jmv_deb@nirgal.com>
+Origin: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2012-4527
+Bug: CVE-2012-4527
+Bug-Debian: http://bugs.debian.org/690924
+Forwarded: no
+Last-Update: 2012-11-01
+Index: mcrypt-2.6.8/src/mcrypt.c
+===================================================================
+--- mcrypt-2.6.8.orig/src/mcrypt.c
++++ mcrypt-2.6.8/src/mcrypt.c
+@@ -41,4 +41,6 @@
+
++/* Temporary error message can contain one file name and 1k of text */
++#define ERRWIDTH ((PATH_MAX)+1024)
+-char tmperr[128];
++char tmperr[ERRWIDTH];
+ unsigned int stream_flag = FALSE;
+ char *keymode = NULL;
+ char *mode = NULL;
+@@ -482,7 +485,7 @@
+ #ifdef HAVE_STAT
+       if (stream_flag == FALSE) {
+ 	 if (is_normal_file(file[i]) == FALSE) {
+-	    sprintf(tmperr,
++	    snprintf(tmperr, ERRWIDTH,
+ 		    _
+ 		    ("%s: %s is not a regular file. Skipping...\n"),
+ 		    program_name, file[i]);
+@@ -501,7 +504,7 @@
+ 	    dinfile = file[i];
+ 	 if ((isatty(fileno((FILE *) (stdin))) == 1)
+ 	     && (stream_flag == TRUE) && (force == 0)) {	/* not a tty */
+-	    sprintf(tmperr,
++	    snprintf(tmperr, ERRWIDTH,
+ 		    _
+ 		    ("%s: Encrypted data will not be read from a terminal.\n"),
+ 		    program_name);
+@@ -520,7 +523,7 @@
+ 	    einfile = file[i];
+ 	 if ((isatty(fileno((FILE *) (stdout))) == 1)
+ 	     && (stream_flag == TRUE) && (force == 0)) {	/* not a tty */
+-	    sprintf(tmperr,
++	    snprintf(tmperr, ERRWIDTH,
+ 		    _
+ 		    ("%s: Encrypted data will not be written to a terminal.\n"),
+ 		    program_name);
+@@ -544,7 +547,7 @@
+ 	    strcpy(outfile, einfile);
+ 	    /* if file has already the .nc ignore it */
+ 	    if (strstr(outfile, ".nc") != NULL) {
+-	       sprintf(tmperr,
++	       snprintf(tmperr, ERRWIDTH,
+ 		       _
+ 		       ("%s: file %s has the .nc suffix... skipping...\n"),
+ 		       program_name, outfile);
+@@ -590,10 +593,10 @@
+
+ 	 if (x == 0) {
+ 	    if (stream_flag == FALSE) {
+-	       sprintf(tmperr, _("File %s was decrypted.\n"), dinfile);
++	       snprintf(tmperr, ERRWIDTH, _("File %s was decrypted.\n"), dinfile);
+ 	       err_warn(tmperr);
+ 	    } else {
+-	       sprintf(tmperr, _("Stdin was decrypted.\n"));
++	       snprintf(tmperr, ERRWIDTH, _("Stdin was decrypted.\n"));
+ 	       err_warn(tmperr);
+ 	    }
+ #ifdef HAVE_STAT
+@@ -610,7 +613,7 @@
+
+ 	 } else {
+ 	    if (stream_flag == FALSE) {
+-	       sprintf(tmperr,
++	       snprintf(tmperr, ERRWIDTH,
+ 		       _
+ 		       ("File %s was NOT decrypted successfully.\n"),
+ 		       dinfile);
+@@ -636,10 +639,10 @@
+
+ 	 if (x == 0) {
+ 	    if (stream_flag == FALSE) {
+-	       sprintf(tmperr, _("File %s was encrypted.\n"), einfile);
++	       snprintf(tmperr, ERRWIDTH, _("File %s was encrypted.\n"), einfile);
+ 	       err_warn(tmperr);
+ 	    } else {
+-	       sprintf(tmperr, _("Stdin was encrypted.\n"));
++	       snprintf(tmperr, ERRWIDTH, _("Stdin was encrypted.\n"));
+ 	       err_warn(tmperr);
+ 	    }
+ #ifdef HAVE_STAT
+@@ -655,7 +658,7 @@
+
+ 	 } else {
+ 	    if (stream_flag == FALSE) {
+-	       sprintf(tmperr,
++	       snprintf(tmperr, ERRWIDTH,
+ 		       _
+ 		       ("File %s was NOT encrypted successfully.\n"),
+ 		       einfile);
diff --git a/pkgs/tools/misc/pg_top/default.nix b/pkgs/tools/misc/pg_top/default.nix
index 0d379cd11d4a..4de334331158 100644
--- a/pkgs/tools/misc/pg_top/default.nix
+++ b/pkgs/tools/misc/pg_top/default.nix
@@ -1,16 +1,16 @@
-{stdenv, fetchurl, ncurses, postgresql}:
+{ stdenv, fetchurl, ncurses, postgresql }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "pg_top-3.7.0";
 
   src = fetchurl {
-    url = http://pgfoundry.org/frs/download.php/1781/pg_top-3.7.0.tar.gz;
+    url = "http://pgfoundry.org/frs/download.php/1781/${name}.tar.gz";
     sha256 = "17xrv0l58rv3an06gkajzw0gg6v810xx6vl137an1iykmhvfh7h2";
   };
 
-  buildInputs = [ncurses postgresql]; 
+  buildInputs = [ ncurses postgresql ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A 'top' like tool for PostgreSQL";
     longDescription = '' 
       pg_top allows you to: 
@@ -21,8 +21,10 @@ stdenv.mkDerivation {
         <listitem>View user table statistics.</listitem>
         <listitem>View user index statistics.</listitem>
       </itemizedlist>
-    ''; 
+    '';
 
     homepage = http://ptop.projects.postgresql.org/;
+    platforms = platforms.linux;
+    license = licenses.free; # see commands.c
   };
 }
diff --git a/pkgs/tools/misc/screenfetch/default.nix b/pkgs/tools/misc/screenfetch/default.nix
index 92cc800d83d3..972e10492784 100644
--- a/pkgs/tools/misc/screenfetch/default.nix
+++ b/pkgs/tools/misc/screenfetch/default.nix
@@ -3,12 +3,12 @@
 }:
 
 stdenv.mkDerivation {
-  name = "screenFetch-2015-04-20";
+  name = "screenFetch-2016-01-13";
 
   src = fetchgit {
     url = git://github.com/KittyKatt/screenFetch.git;
-    rev = "53e1c0cccacf648e846057938a68dda914f532a1";
-    sha256 = "1wyvy1sn7vnclwrzd32jqlq6iirjkhp2ak55brhkpp9rj1qxk3q6";
+    rev = "22e5bee7647453d45ec82f543f37b8a6a062835d";
+    sha256 = "0xdiz02bqg7ajj547j496qq9adysm1f6zymcy3yyfgw3prnzvdir";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/testdisk/default.nix b/pkgs/tools/misc/testdisk/default.nix
index a80e560b5ebc..312c0ae6db5a 100644
--- a/pkgs/tools/misc/testdisk/default.nix
+++ b/pkgs/tools/misc/testdisk/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, ncurses, libjpeg, e2fsprogs, zlib, openssl, libuuid, ntfs3g }:
 
 stdenv.mkDerivation {
-  name = "testdisk-6.14";
+  name = "testdisk-7.0";
 
   src = fetchurl {
-    url = http://www.cgsecurity.org/testdisk-6.14.tar.bz2;
-    sha256 = "0v1jap83f5h99zv01v3qmqm160d36n4ysi0gyq7xzb3mqgmw75x5";
+    url = http://www.cgsecurity.org/testdisk-7.0.tar.bz2;
+    sha256 = "00bb3b6b22e6aba88580eeb887037aef026968c21a87b5f906c6652cbee3442d";
   };
 
   buildInputs = [ ncurses libjpeg zlib openssl libuuid ]
diff --git a/pkgs/tools/misc/tlp/default.nix b/pkgs/tools/misc/tlp/default.nix
index d21b4fb2f3f8..7b57458bd3f4 100644
--- a/pkgs/tools/misc/tlp/default.nix
+++ b/pkgs/tools/misc/tlp/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, perl, systemd, iw, rfkill, hdparm, ethtool, inetutils
-, module_init_tools, pciutils, smartmontools, x86_energy_perf_policy
+, module_init_tools, pciutils, smartmontools, x86_energy_perf_policy, gawk, gnugrep, coreutils
 , enableRDW ? false, networkmanager
 }:
 
@@ -28,7 +28,7 @@ in stdenv.mkDerivation {
 
   paths = lib.makeSearchPath "bin"
           ([ iw rfkill hdparm ethtool inetutils systemd module_init_tools pciutils smartmontools
-             x86_energy_perf_policy
+             x86_energy_perf_policy gawk gnugrep coreutils
            ]
            ++ lib.optional enableRDW networkmanager
           );
diff --git a/pkgs/tools/misc/tmate/default.nix b/pkgs/tools/misc/tmate/default.nix
index 881c9f1c54f8..b50091657995 100644
--- a/pkgs/tools/misc/tmate/default.nix
+++ b/pkgs/tools/misc/tmate/default.nix
@@ -1,26 +1,22 @@
-{ stdenv, fetchFromGitHub, autoconf, automake110x, libtool, pkgconfig, zlib, openssl, libevent, ncurses, cmake, ruby }:
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, pkgconfig, zlib, openssl, libevent, ncurses, cmake, ruby, libmsgpack, libssh }:
 
 stdenv.mkDerivation rec {
   name = "tmate-${version}";
-  version = "1.8.10";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner  = "nviennot";
     repo   = "tmate";
     rev    = version;
-    sha256 = "1bd9mi8fx40608zlady9dbv21kbdwc3kqrgz012m529f6cbysmzc";
+    sha256 = "1w3a7na0yj1y0x24qckc7s2y9xfak5iv6vyqrd0iibn3b7dxarli";
   };
 
-  buildInputs = [ autoconf automake110x pkgconfig libtool zlib openssl libevent ncurses cmake ruby ];
+  buildInputs = [ autoconf automake pkgconfig libtool zlib openssl libevent ncurses cmake ruby libmsgpack libssh ];
 
   dontUseCmakeConfigure=true;
 
   preConfigure = "./autogen.sh";
 
-  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
-    substituteInPlace msgpack/bootstrap --replace glibtoolize libtoolize
-  '';
-
   meta = {
     homepage = http://tmate.io/;
     description = "Instant Terminal Sharing";
diff --git a/pkgs/tools/misc/ttylog/default.nix b/pkgs/tools/misc/ttylog/default.nix
index 16db6b62eb7a..ab7ab2b68c34 100644
--- a/pkgs/tools/misc/ttylog/default.nix
+++ b/pkgs/tools/misc/ttylog/default.nix
@@ -15,7 +15,11 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = "http://ttylog.sourceforg.net";
-    description = "a serial port logger which can be used to print everything to stdout that comes from a serial device";
+    description = "Simple serial port logger";
+    longDescription = ''
+      A serial port logger which can be used to print everything to stdout
+      that comes from a serial device.
+    '';
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ wkennington ];
diff --git a/pkgs/tools/misc/txtw/default.nix b/pkgs/tools/misc/txtw/default.nix
new file mode 100644
index 000000000000..90a9e0fa66ff
--- /dev/null
+++ b/pkgs/tools/misc/txtw/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, cairo }:
+
+stdenv.mkDerivation rec {
+  version = "0.4";
+  name = "txtw-${version}";
+
+  src = fetchFromGitHub {
+    owner = "baskerville";
+    repo = "txtw";
+    rev = "${version}";
+    sha256 = "17yjdgdd080fsf5r1wzgk6vvzwsa15gcwc9z64v7x588jm1ryy3k";
+  };
+
+  buildInputs = [ cairo ];
+
+  prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
+
+  meta = with stdenv.lib; {
+    description = "Compute text widths";
+    homepage = https://github.com/baskerville/txtw;
+    maintainers = with maintainers; [ lihop ];
+    license = licenses.unlicense;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/xfstests/default.nix b/pkgs/tools/misc/xfstests/default.nix
new file mode 100644
index 000000000000..b7c1795c0372
--- /dev/null
+++ b/pkgs/tools/misc/xfstests/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, acl, attr, autoreconfHook, bash, bc, coreutils, e2fsprogs, fetchgit, fio, gawk
+, lib, libaio, libcap_progs, libuuid, libxfs, lvm2, openssl, perl, procps, psmisc, su
+, time, utillinux, which, writeScript, xfsprogs }:
+
+stdenv.mkDerivation {
+  name = "xfstests-2016-01-11";
+
+  src = fetchgit {
+    url = "git://oss.sgi.com/xfs/cmds/xfstests.git";
+    rev = "dfe582dd396f16ddce1909baab7376e00af07792";
+    sha256 = "0hbgccmhcxn5nm87nq13kpi3rcbjadlj65kd03bfjqxhm4gx732q";
+  };
+
+  buildInputs = [ acl autoreconfHook attr gawk libaio libuuid libxfs openssl perl ];
+
+  patchPhase = ''
+    # Patch the destination directory
+    sed -i include/builddefs.in -e "s|^PKG_LIB_DIR\s*=.*|PKG_LIB_DIR=$out/lib/xfstests|"
+
+    # Don't canonicalize path to mkfs (in util-linux) - otherwise e.g. mkfs.ext4 isn't found
+    sed -i common/config -e 's|^export MKFS_PROG=.*|export MKFS_PROG=mkfs|'
+
+    for f in common/* tools/* tests/*/*; do
+      sed -i $f -e 's|/bin/bash|${bash}/bin/bash|'
+      sed -i $f -e 's|/bin/true|true|'
+      sed -i $f -e 's|/usr/sbin/filefrag|${e2fsprogs}/bin/filefrag|'
+      sed -i $f -e 's|hostname -s|hostname|'   # `hostname -s` seems problematic on NixOS
+      sed -i $f -e 's|$(_yp_active)|1|'        # NixOS won't ever have Yellow Pages enabled
+    done
+
+    for f in src/*.c src/*.sh; do
+      sed -e 's|/bin/rm|${coreutils}/bin/rm|' -i $f
+      sed -e 's|/usr/bin/time|${time}/bin/time|' -i $f
+    done
+
+    patchShebangs .
+  '';
+
+  preConfigure = ''
+    # The configure scripts really don't like looking in PATH at all...
+    export AWK=$(type -P awk)
+    export ECHO=$(type -P sort)
+    export LIBTOOL=$(type -P libtool)
+    export MAKE=$(type -P make)
+    export SED=$(type -P sed)
+    export SORT=$(type -P sort)
+  '';
+
+  postInstall = ''
+    patchShebangs $out/lib/xfstests
+
+    mkdir -p $out/bin
+    substitute $wrapperScript $out/bin/xfstests-check --subst-var out
+    chmod a+x $out/bin/xfstests-check
+  '';
+
+  # The upstream package is pretty hostile to packaging; it looks up
+  # various paths relative to current working directory, and also
+  # wants to write temporary files there. So create a temporary
+  # to run from and symlink the runtime files to it.
+  wrapperScript = writeScript "xfstests-check" ''
+    #!/bin/sh
+    set -e
+    export RESULT_BASE="$(pwd)/results"
+
+    dir=$(mktemp --tmpdir -d xfstests.XXXXXX)
+    trap "rm -rf $dir" EXIT
+
+    chmod a+rx "$dir"
+    cd "$dir"
+    for f in check common ltp src tests; do
+      ln -s @out@/lib/xfstests/$f $f
+    done
+
+    export PATH=${lib.makeSearchPath "bin" [acl attr bc e2fsprogs fio gawk libcap_progs lvm2 perl procps psmisc su utillinux which xfsprogs]}:$PATH
+    exec ./check "$@"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Torture test suite for filesystems";
+    homepage = "http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/cmds/xfstests.git";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.dezgeg ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/xmltv/default.nix b/pkgs/tools/misc/xmltv/default.nix
deleted file mode 100644
index 9d3939406066..000000000000
--- a/pkgs/tools/misc/xmltv/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ fetchurl, perl, perlPackages }:
-
-import ../../../development/perl-modules/generic perl {
-  name = "xmltv-0.5.51";
-  src = fetchurl {
-    url = mirror://sourceforge/xmltv/xmltv-0.5.51.tar.bz2;
-    sha256 = "0vgc167y6y847m18vg3qwjy3df12bryjy9par01n5b9mjalx9jpd";
-  };
-  #makeMakerFlags = "-components tv_grab_nl";
-  buildInputs = [
-    perlPackages.TermReadKey perlPackages.XMLTwig perlPackages.XMLWriter
-    perlPackages.DateManip perlPackages.HTMLTree perlPackages.HTMLParser
-    perlPackages.HTMLTagset perlPackages.URI perlPackages.LWP
-  ];
-  meta.broken = true;
-}
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index cdd213b0eba5..09328c8d8aba 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, buildPythonPackage, makeWrapper, ffmpeg, zip
-, pandoc ? null }:
+, pandoc ? null
+}:
 
 # Pandoc is required to build the package's man page. Release tarballs
 # contain a formatted man page already, though, so it's fine to pass
@@ -10,10 +11,10 @@
 
 buildPythonPackage rec {
 
-  name = "youtube-dl-${meta.version}";
+  name = "youtube-dl-2016.01.01";
 
   src = fetchurl {
-    url = "http://yt-dl.org/downloads/${meta.version}/${name}.tar.gz";
+    url = "http://yt-dl.org/downloads/${stdenv.lib.getVersion name}/${name}.tar.gz";
     sha256 = "0b0pk8h2iswdiyf65c0zcwcad9dm2hid67fnfafj7d3ikp4kfbvk";
   };
 
@@ -24,7 +25,6 @@ buildPythonPackage rec {
     ''wrapProgram $out/bin/youtube-dl --prefix PATH : "${ffmpeg}/bin"'';
 
   meta = with stdenv.lib; {
-    version = "2016.01.01";
     homepage = http://rg3.github.io/youtube-dl/;
     repositories.git = https://github.com/rg3/youtube-dl.git;
     description = "Command-line tool to download videos from YouTube.com and other sites";
diff --git a/pkgs/tools/networking/aircrack-ng/default.nix b/pkgs/tools/networking/aircrack-ng/default.nix
index ce2ded24f823..39ee40994a75 100644
--- a/pkgs/tools/networking/aircrack-ng/default.nix
+++ b/pkgs/tools/networking/aircrack-ng/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libpcap, openssl, zlib, wirelesstools, libnl, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "aircrack-ng-1.2-beta3";
+  name = "aircrack-ng-1.2-rc3";
 
   src = fetchurl {
     url = "http://download.aircrack-ng.org/${name}.tar.gz";
-    sha256 = "13g9xz9djjgfc2xi88vnx7zhgy751hqb3739y7znyihd6q9sw8id";
+    sha256 = "11a53acln0fpar6v75qlybzdg8hdwc9ssd06fxygr47yp755qncf";
   };
 
   buildInputs = [ libpcap openssl zlib libnl pkgconfig ];
@@ -16,10 +16,10 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with stdenv.lib; {
-    description = "Wireless encryption crackign tools";
+    description = "Wireless encryption cracking tools";
     homepage = http://www.aircrack-ng.org/;
-    license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = [ maintainers.iElectric maintainers.viric maintainers.garbas maintainers.chaoflow ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ iElectric viric garbas chaoflow nckx ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/axel/default.nix b/pkgs/tools/networking/axel/default.nix
index 017492f28b5b..3fb04c16ee76 100644
--- a/pkgs/tools/networking/axel/default.nix
+++ b/pkgs/tools/networking/axel/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
     description = "Console downloading program with some features for parallel connections for faster downloading";
     homepage = http://axel.alioth.debian.org/;
     maintainers = with maintainers; [ pSub ];
-    platforms = platforms.linux;
+    platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/tools/networking/easyrsa/default.nix b/pkgs/tools/networking/easyrsa/default.nix
index e49c32aac704..2b41f8ca1d3c 100644
--- a/pkgs/tools/networking/easyrsa/default.nix
+++ b/pkgs/tools/networking/easyrsa/default.nix
@@ -1,39 +1,33 @@
-{ stdenv, fetchurl, autoconf, automake111x, makeWrapper
-, gnugrep, openssl}:
-
-stdenv.mkDerivation rec {
-  name = "easyrsa-2.2.0";
-
-  src = fetchurl {
-    url = "https://github.com/OpenVPN/easy-rsa/archive/v2.2.0.tar.gz";
-    sha256 = "1xq4by5frb6ikn53ss3y8v7ss639dccxfq8jfrbk07ynkmk668qk";
+{ stdenv, fetchFromGitHub, openssl }:
+
+let
+  version = "3.0.0";
+in stdenv.mkDerivation rec {
+  name = "easyrsa-${version}";
+
+  src = fetchFromGitHub {
+    owner = "OpenVPN";
+    repo = "easy-rsa";
+    rev = "v${version}";
+    sha256 = "0wbdv3wmqwm5680rpb971l56xiw49adpicqshk3vhfmpvqzl4dbs";
   };
 
-  # Copy missing files and autoreconf
-  preConfigure = ''
-    cp ${automake111x}/share/automake/install-sh .
-    cp ${automake111x}/share/automake/missing .
-
-    autoreconf
-  '';
-
-  preBuild = ''
-    mkdir -p $out/share/easy-rsa
-  '';
-
-  nativeBuildInputs = [ autoconf makeWrapper automake111x ];
-  buildInputs = [ gnugrep openssl];
-
-  # Make sane defaults and patch default config vars
-  postInstall = ''
-    cp $out/share/easy-rsa/openssl-1.0.0.cnf $out/share/easy-rsa/openssl.cnf
-    for prog in $(find "$out/share/easy-rsa" -executable -type f); do
-      makeWrapper "$prog" "$out/bin/$(basename $prog)" \
-        --set EASY_RSA "$out/share/easy-rsa" \
-        --set OPENSSL "${openssl}/bin/openssl" \
-        --set GREP "${gnugrep}/bin/grep"
-    done
-    sed -i "/EASY_RSA=\|OPENSSL=\|GREP=/d" $out/share/easy-rsa/vars
+  patches = [ ./fix-paths.patch ];
+
+  installPhase = ''
+    mkdir -p $out/share/easyrsa
+    cp -r easyrsa3/{openssl*.cnf,x509-types,vars.example} $out/share/easyrsa
+    install -D -m755 easyrsa3/easyrsa $out/bin/easyrsa
+    substituteInPlace $out/bin/easyrsa \
+      --subst-var out \
+      --subst-var-by openssl ${openssl}/bin/openssl
+
+    # Helper utility
+    cat > $out/bin/easyrsa-init <<EOF
+    #!${stdenv.shell} -e
+    cp -r $out/share/easyrsa/* .
+    EOF
+    chmod +x $out/bin/easyrsa-init
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/easyrsa/fix-paths.patch b/pkgs/tools/networking/easyrsa/fix-paths.patch
new file mode 100644
index 000000000000..82688fa79460
--- /dev/null
+++ b/pkgs/tools/networking/easyrsa/fix-paths.patch
@@ -0,0 +1,33 @@
+diff --git a/easyrsa3/easyrsa b/easyrsa3/easyrsa
+index 6fec288..210648a 100755
+--- a/easyrsa3/easyrsa
++++ b/easyrsa3/easyrsa
+@@ -1003,7 +1003,7 @@ Note: using Easy-RSA configuration from: $vars"
+ 	
+ 	# Set defaults, preferring existing env-vars if present
+ 	set_var EASYRSA		"$PWD"
+-	set_var EASYRSA_OPENSSL	openssl
++	set_var EASYRSA_OPENSSL	"@openssl@"
+ 	set_var EASYRSA_PKI	"$EASYRSA/pki"
+ 	set_var EASYRSA_DN	cn_only
+ 	set_var EASYRSA_REQ_COUNTRY	"US"
+@@ -1030,13 +1030,17 @@ Note: using Easy-RSA configuration from: $vars"
+ 	# Detect openssl config, preferring EASYRSA_PKI over EASYRSA
+ 	if [ -f "$EASYRSA_PKI/openssl-1.0.cnf" ]; then
+ 		set_var EASYRSA_SSL_CONF	"$EASYRSA_PKI/openssl-1.0.cnf"
+-	else	set_var EASYRSA_SSL_CONF	"$EASYRSA/openssl-1.0.cnf"
++	elif [ -f "$EASYRSA/openssl-1.0.cnf" ]; then
++		set_var EASYRSA_SSL_CONF	"$EASYRSA/openssl-1.0.cnf"
++	else	set_var EASYRSA_SSL_CONF	"@out@/share/easyrsa/openssl-1.0.cnf"
+ 	fi
+ 
+ 	# Same as above for the x509-types extensions dir
+ 	if [ -d "$EASYRSA_PKI/x509-types" ]; then
+ 		set_var EASYRSA_EXT_DIR		"$EASYRSA_PKI/x509-types"
+-	else	set_var EASYRSA_EXT_DIR		"$EASYRSA/x509-types"
++	elif [ -d "$EASYRSA/x509-types" ]; then
++		set_var EASYRSA_EXT_DIR		"$EASYRSA/x509-types"
++	else	set_var EASYRSA_EXT_DIR		"@out@/share/easyrsa/x509-types"
+ 	fi
+ 
+ 	# EASYRSA_ALGO_PARAMS must be set depending on selected algo
diff --git a/pkgs/tools/networking/fuppes/default.nix b/pkgs/tools/networking/fuppes/default.nix
deleted file mode 100644
index 67e3b581f24f..000000000000
--- a/pkgs/tools/networking/fuppes/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{stdenv, fetchurl, pkgconfig, pcre, libxml2, sqlite, ffmpeg, imagemagick,
-exiv2, mp4v2, lame, libvorbis, flac, libmad, faad2}:
-
-stdenv.mkDerivation rec {
-  name = "fuppes-0.660";
-  src = fetchurl {
-    url = mirror://sourceforge/project/fuppes/fuppes/SVN-660/fuppes-0.660.tar.gz;
-    sha256 = "1c385b29878927e5f1e55ae2c9ad284849d1522d9517a88e34feb92bd5195173";
-  };
-
-  patches = [
-    ./fuppes-faad-exanpse-backward-symbols-macro.patch
-  ];
-
-  buildInputs = [
-    pkgconfig pcre libxml2 sqlite ffmpeg imagemagick exiv2 mp4v2 lame
-    libvorbis flac libmad faad2
-  ];
-
-  configureFlags = [
-    "--enable-ffmpegthumbnailer"
-    "--enable-magickwand"
-    "--enable-exiv2"
-    "--enable-transcoder-ffmpeg"
-    "--enable-mp4v2"
-    "--enable-lame"
-    "--enable-vorbis"
-    "--enable-flac"
-    "--enable-mad"
-    "--enable-faad"
-  ];
-
-  postFixup = ''
-    patchelf --set-rpath "$(patchelf --print-rpath $out/bin/fuppes):${faad2}/lib" $out/bin/fuppes
-    patchelf --set-rpath "$(patchelf --print-rpath $out/bin/fuppesd):${faad2}/lib" $out/bin/fuppesd
-  '';
-
-  meta = {
-    description = "UPnP A/V Media Server";
-    longDescription = ''
-      FUPPES is a free, multiplatform UPnP A/V Media Server.
-
-      FUPPES supports a wide range of UPnP MediaRenderers as well as
-      on-the-fly transcoding of various audio, video and image formats.
-
-      FUPPES also includes basic DLNA support.
-    '';
-    homepage = http://fuppes.ulrich-voelkel.de/;
-    license = stdenv.lib.licenses.gpl2;
-
-    maintainers = [ stdenv.lib.maintainers.pierron ];
-    platforms = stdenv.lib.platforms.all;
-
-    broken = true;
-  };
-}
diff --git a/pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch b/pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch
deleted file mode 100644
index c88a6fb4427e..000000000000
--- a/pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -x _inst -x _build -x .svn -ur fuppes-0.660/src/lib/Transcoding/FaadWrapper.cpp fuppes-0.660.new/src/lib/Transcoding/FaadWrapper.cpp
---- fuppes-0.660/src/lib/Transcoding/FaadWrapper.cpp	2009-11-19 10:16:25.000000000 +0100
-+++ fuppes-0.660.new/src/lib/Transcoding/FaadWrapper.cpp	2011-01-30 22:25:34.171263052 +0100
-@@ -329,13 +329,19 @@
-   
-   CloseFile();
- }
--  
-+
-+// These macros are used to convert old function names to new ones based on
-+// the #define declared in faad headers.  The two-level macro are used to
-+// expanse the macro which are gave to to_str.
-+#define to_str_(fun) #fun
-+#define to_str(fun) to_str_(fun)
-+
- bool CFaadWrapper::LoadLib()
- {
-   #ifdef WIN32 
--  std::string sLibName = "libfaad-0.dll"; 
-+  std::string sLibName = "libfaad-2.dll"; 
-   #else   
--  std::string sLibName = "libfaad.so.0"; 
-+  std::string sLibName = "libfaad.so.2"; 
-   #endif 
-    
-   if(!CSharedConfig::Shared()->FaadLibName().empty()) { 
-@@ -350,54 +356,54 @@
-     return false; 
-   }
-  
--  m_faacDecOpen = (faacDecOpen_t)FuppesGetProcAddress(m_LibHandle, "faacDecOpen"); 
-+  m_faacDecOpen = (faacDecOpen_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecOpen)); 
-   if(!m_faacDecOpen) { 
-     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecOpen'", __FILE__, __LINE__);    
-     return false; 
-   }
- 
--  m_faacDecGetErrorMessage = (faacDecGetErrorMessage_t)FuppesGetProcAddress(m_LibHandle, "faacDecGetErrorMessage"); 
-+  m_faacDecGetErrorMessage = (faacDecGetErrorMessage_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecGetErrorMessage)); 
-   if(!m_faacDecGetErrorMessage) { 
-     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecGetErrorMessage'", __FILE__, __LINE__);    
-     return false; 
-   }
-   
--  m_faacDecGetCurrentConfiguration = (faacDecGetCurrentConfiguration_t)FuppesGetProcAddress(m_LibHandle, "faacDecGetCurrentConfiguration"); 
-+  m_faacDecGetCurrentConfiguration = (faacDecGetCurrentConfiguration_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecGetCurrentConfiguration)); 
-   if(!m_faacDecGetCurrentConfiguration) { 
-     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecGetCurrentConfiguration'", __FILE__, __LINE__);    
-   } 
- 
--  m_faacDecSetConfiguration = (faacDecSetConfiguration_t)FuppesGetProcAddress(m_LibHandle, "faacDecSetConfiguration"); 
-+  m_faacDecSetConfiguration = (faacDecSetConfiguration_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecSetConfiguration)); 
-   if(!m_faacDecSetConfiguration) { 
-     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecSetConfiguration'", __FILE__, __LINE__);    
-   } 
- 
--  m_faacDecInit = (faacDecInit_t)FuppesGetProcAddress(m_LibHandle, "faacDecInit"); 
-+  m_faacDecInit = (faacDecInit_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecInit)); 
-   if(!m_faacDecInit) { 
-     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecInit'", __FILE__, __LINE__);    
-   } 
- 
--  m_faacDecInit2 = (faacDecInit2_t)FuppesGetProcAddress(m_LibHandle, "faacDecInit2"); 
-+  m_faacDecInit2 = (faacDecInit2_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecInit2)); 
-   if(!m_faacDecInit2) { 
-     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecInit2'", __FILE__, __LINE__);    
-     return false; 
-   }
-   
--  m_faacDecDecode = (faacDecDecode_t)FuppesGetProcAddress(m_LibHandle, "faacDecDecode"); 
-+  m_faacDecDecode = (faacDecDecode_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecDecode)); 
-   if(!m_faacDecDecode) { 
-     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecDecode'", __FILE__, __LINE__);    
-     return false; 
-   } 
- 
--  m_faacDecClose = (faacDecClose_t)FuppesGetProcAddress(m_LibHandle, "faacDecClose"); 
-+  m_faacDecClose = (faacDecClose_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecClose)); 
-   if(!m_faacDecClose) { 
-     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecClose'", __FILE__, __LINE__);    
-     return false; 
-   } 
- 
--  m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, "AudioSpecificConfig"); 
-+  m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, to_str(AudioSpecificConfig)); 
-   if(!m_AudioSpecificConfig) {
--		m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, "faacDecAudioSpecificConfig"); 
-+		m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecAudioSpecificConfig)); 
- 		if(!m_AudioSpecificConfig) {  
-   	  CSharedLog::Shared()->Log(L_EXT, "cannot load symbol '(faacDec)AudioSpecificConfig'", __FILE__, __LINE__);    
-       return false;
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index a11f0347ce56..ff41beaeb05b 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -4,13 +4,13 @@ stdenv.mkDerivation rec {
 
   name = pname + "-" + version;
   pname = "i2pd";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "0slrfmgrf9b689wpsdpvsnmhbqsygcy558dz259k6xcf50f7lfqh";
+    sha256 = "0gb6bdsyb7m0jkilln9h7z2l8gr8ia10jah17ygc15jzycygijis";
   };
 
   buildInputs = [ boost zlib openssl ];
diff --git a/pkgs/tools/networking/isync/unstable.nix b/pkgs/tools/networking/isync/unstable.nix
new file mode 100644
index 000000000000..309190ddfb4d
--- /dev/null
+++ b/pkgs/tools/networking/isync/unstable.nix
@@ -0,0 +1,29 @@
+{ fetchgit, stdenv, openssl, pkgconfig, db, cyrus_sasl
+, autoconf, automake }:
+
+stdenv.mkDerivation rec {
+  name = "isync-git-2015-11-08";
+  rev = "46e792";
+
+  src = fetchgit {
+    url = "git://git.code.sf.net/p/isync/isync";
+    inherit rev;
+    sha256 = "1flm9lkgf1pa6aa678xr0yj5fxwh8c9jpjzd4002f4jjmcf4w57s";
+  };
+
+  buildInputs = [ openssl pkgconfig db cyrus_sasl autoconf automake ];
+
+  preConfigure = ''
+    touch ChangeLog
+    ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://isync.sourceforge.net/;
+    description = "Free IMAP and MailDir mailbox synchronizer";
+    license = licenses.gpl2Plus;
+
+    maintainers = with maintainers; [ the-kenny ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/networking/minissdpd/default.nix b/pkgs/tools/networking/minissdpd/default.nix
index f99a3de90468..b197d16abdb2 100644
--- a/pkgs/tools/networking/minissdpd/default.nix
+++ b/pkgs/tools/networking/minissdpd/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, libnfnetlink }:
 
 let
-  version = "1.4";
+  version = "1.5";
   name = "minissdpd-${version}";
 in stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
-    sha256 = "0450680b9hpr3z4dn6gy01clxdc17w0lmxcjx6kfj8ahsklwg8j6";
+    sha256 = "03w9zg8i8bfjlr0haa08r823rfcff6lzm1ia875il7kkhnqkgmnz";
     url = "http://miniupnp.free.fr/files/download.php?file=${name}.tar.gz";
     name = "${name}.tar.gz";
   };
diff --git a/pkgs/tools/networking/miniupnpd/default.nix b/pkgs/tools/networking/miniupnpd/default.nix
index 91306b4ae6da..e88ae7a1403e 100644
--- a/pkgs/tools/networking/miniupnpd/default.nix
+++ b/pkgs/tools/networking/miniupnpd/default.nix
@@ -3,11 +3,11 @@
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "miniupnpd-1.9.20151212";
+  name = "miniupnpd-1.9.20160113";
 
   src = fetchurl {
     url = "http://miniupnp.free.fr/files/download.php?file=${name}.tar.gz";
-    sha256 = "1ay7dw1y5fqgjrqa9s8av8ndmw7wkjm39xnnzzw8pxbv70d6b12j";
+    sha256 = "084ii5vb54rr8sg50cqvsw5rj6linj23p3gnxwfyl100dkkgvcaa";
     name = "${name}.tar.gz";
   };
 
diff --git a/pkgs/tools/networking/nethogs/default.nix b/pkgs/tools/networking/nethogs/default.nix
index 3b22458ebe3f..c8ff0c7a1609 100644
--- a/pkgs/tools/networking/nethogs/default.nix
+++ b/pkgs/tools/networking/nethogs/default.nix
@@ -1,21 +1,19 @@
-{ stdenv, fetchgit, ncurses, libpcap }:
+{ stdenv, fetchFromGitHub, ncurses, libpcap }:
 
 stdenv.mkDerivation rec {
   name = "nethogs-${version}";
+  version = "0.8.1";
 
-  version = "0.8.1-git";
-
-  src = fetchgit {
-    url = git://github.com/raboof/nethogs.git;
-    rev = "f6f9e890ea731b8acdcb8906642afae4cd96baa8";
-    sha256 = "0dj5sdyxdlssbnjbdf8k7x896m2zgyyg31g12dl5n6irqdrb5scf";
+  src = fetchFromGitHub {
+    owner = "raboof";
+    repo = "nethogs";
+    rev = "v${version}";
+    sha256 = "1phn6i44ysvpl1f54bx4dspy51si8rc2wq6fywi163mi25j355d4";
   };
 
   buildInputs = [ ncurses libpcap ];
 
-  preConfigure = ''
-    substituteInPlace Makefile --replace "prefix := /usr/local" "prefix := $out"
-  '';
+  installFlags = [ "prefix=$(out)" "sbin=$(prefix)/bin" ];
 
   meta = with stdenv.lib; {
     description = "A small 'net top' tool, grouping bandwidth by process";
@@ -31,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     homepage = http://nethogs.sourceforge.net/;
     platforms = platforms.linux;
+    maintainer = [ maintainers.rycee ];
   };
 }
diff --git a/pkgs/tools/networking/ntop/default.nix b/pkgs/tools/networking/ntop/default.nix
deleted file mode 100644
index 11e67ae63336..000000000000
--- a/pkgs/tools/networking/ntop/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, autoconf, automake, libtool, wget, libpcap, gdbm, zlib, openssl, rrdtool
-, python, geoip }:
-
-stdenv.mkDerivation rec {
-  name = "ntop-4.1.0";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/ntop/${name}.tar.gz";
-    sha256 = "19440gnswnqwvkbzpay9hzmnfnhbyc2ifpl2jri8dhcyhxima7n7";
-  };
-
-  preConfigure = ''
-    ./autogen.sh
-    cp ${libtool}/share/aclocal/libtool.m4 libtool.m4.in
-  '';
-
-  nativeBuildInputs = [ autoconf automake libtool wget libpcap gdbm zlib openssl rrdtool
-    python geoip ];
-
-  meta = {
-    description = "Traffic analysis with NetFlow and sFlow support";
-    license = stdenv.lib.licenses.gpl3Plus;
-    homepage = http://www.ntop.org/products/ntop/;
-    platforms = stdenv.lib.platforms.linux;
-    broken = true;
-  };
-}
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 67bf5be7d5b7..fecaabe95f94 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -1,7 +1,8 @@
-{ stdenv, fetchurl, zlib, openssl, perl, libedit, pkgconfig, pam
+{ stdenv, fetchurl, fetchpatch, zlib, openssl, perl, libedit, pkgconfig, pam
 , etcDir ? null
 , hpnSupport ? false
 , withKerberos ? false
+, withGssapiPatches ? withKerberos
 , kerberos
 }:
 
@@ -14,6 +15,11 @@ let
     sha256 = "682b4a6880d224ee0b7447241b684330b731018585f1ba519f46660c10d63950";
   };
 
+  gssapiSrc = fetchpatch {
+    url = "http://anonscm.debian.org/cgit/pkg-ssh/openssh.git/plain/debian/patches/gssapi.patch?h=debian/6.9p1-3";
+    sha256 = "03zlgkb3a1igj20kn8cz55ggaxg65h6f0kg20m39m0wsb94qjdb1";
+  };
+
 in
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -30,7 +36,8 @@ stdenv.mkDerivation rec {
       export NIX_LDFLAGS="$NIX_LDFLAGS -lgcc_s"
     '';
 
-  patches = [ ./locale_archive.patch ./openssh-6.9p1-security-7.0.patch];
+  patches = [ ./locale_archive.patch ./openssh-6.9p1-security-7.0.patch ./disable-roaming.patch ]
+    ++ optional withGssapiPatches gssapiSrc;
 
   buildInputs = [ zlib openssl libedit pkgconfig pam ]
     ++ optional withKerberos [ kerberos ];
diff --git a/pkgs/tools/networking/openssh/disable-roaming.patch b/pkgs/tools/networking/openssh/disable-roaming.patch
new file mode 100644
index 000000000000..cd81d52f6c18
--- /dev/null
+++ b/pkgs/tools/networking/openssh/disable-roaming.patch
@@ -0,0 +1,51 @@
+From b842c1891b9979e30a6b53292a236ceb9231be79 Mon Sep 17 00:00:00 2001
+From: Franz Pletz <fpletz@fnordicwalking.de>
+Date: Thu, 14 Jan 2016 16:25:50 +0100
+Subject: [PATCH] Disable roaming, fixes CVE-2016-0777 and CVE-0216-0778
+
+Based on http://ftp.openbsd.org/pub/OpenBSD/patches/5.8/common/010_ssh.patch.sig
+---
+ readconf.c | 5 ++---
+ ssh.c      | 3 ---
+ 2 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/readconf.c b/readconf.c
+index db7d0bb..5b03f97 100644
+--- a/readconf.c
++++ b/readconf.c
+@@ -1660,7 +1660,7 @@ initialize_options(Options * options)
+ 	options->tun_remote = -1;
+ 	options->local_command = NULL;
+ 	options->permit_local_command = -1;
+-	options->use_roaming = -1;
++	options->use_roaming = 0;
+ 	options->visual_host_key = -1;
+ 	options->ip_qos_interactive = -1;
+ 	options->ip_qos_bulk = -1;
+@@ -1835,8 +1835,7 @@ fill_default_options(Options * options)
+ 		options->tun_remote = SSH_TUNID_ANY;
+ 	if (options->permit_local_command == -1)
+ 		options->permit_local_command = 0;
+-	if (options->use_roaming == -1)
+-		options->use_roaming = 1;
++	options->use_roaming = 0;
+ 	if (options->visual_host_key == -1)
+ 		options->visual_host_key = 0;
+ 	if (options->ip_qos_interactive == -1)
+diff --git a/ssh.c b/ssh.c
+index 3fd5a94..e8428b5 100644
+--- a/ssh.c
++++ b/ssh.c
+@@ -1931,9 +1931,6 @@ ssh_session2(void)
+ 			fork_postauth();
+ 	}
+ 
+-	if (options.use_roaming)
+-		request_roaming();
+-
+ 	return client_loop(tty_flag, tty_flag ?
+ 	    options.escape_char : SSH_ESCAPECHAR_NONE, id);
+ }
+-- 
+2.7.0
+
diff --git a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
index 7eefb516e1ca..5f335c8f76a9 100644
--- a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
+++ b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
@@ -1,28 +1,30 @@
-{stdenv, fetchurl, pkgconfig, glib, gtk, libxml2, bison, gettext, zlib}:
+{ stdenv, fetchurl, bison, pkgconfig
+, glib, gtk, libxml2, gettext, zlib }:
 
 let
   name = "gtk-gnutella";
-  version = "1.0.1";
+  version = "1.1.5";
 in
 stdenv.mkDerivation {
   name = "${name}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/${name}/${name}-${version}.tar.bz2";
-    sha256 = "010gzk2xqqkm309qnj5k28ghh9i92vvpnn8ly9apzb5gh8bqfm0g";
+    sha256 = "19d8mmyxrdwdafcjq1hvs9zn40yrcj1127163a2058svi0x08cn3";
   };
 
-  buildInputs = [pkgconfig glib gtk libxml2 bison gettext zlib];
+  nativeBuildInputs = [ bison pkgconfig ];
+  buildInputs = [ glib gtk libxml2 gettext zlib ];
 
   NIX_LDFLAGS = "-rpath ${zlib}/lib";
   configureScript = "./Configure";
   dontAddPrefix = true;
   configureFlags = "-d -e -D prefix=$out -D gtkversion=2 -D official=true";
 
-  meta = {
-    homepage = "http://gtk-gnutella.sourceforge.net/";
-    description = "a server/client for Gnutella";
-    license = stdenv.lib.licenses.gpl2;
+  meta = with stdenv.lib; {
+    homepage = http://gtk-gnutella.sourceforge.net/;
+    description = "Server/client for Gnutella";
+    license = licenses.gpl2;
     broken = true;
   };
 }
diff --git a/pkgs/tools/networking/stunnel/default.nix b/pkgs/tools/networking/stunnel/default.nix
index ecd98d8155fa..e8b56ed7d966 100644
--- a/pkgs/tools/networking/stunnel/default.nix
+++ b/pkgs/tools/networking/stunnel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name    = "stunnel-${version}";
-  version = "5.26";
+  version = "5.29";
 
   src = fetchurl {
     url    = "http://www.stunnel.org/downloads/${name}.tar.gz";
-    sha256 = "09i7gizisa04l0gygwbyd3dnzpjmq3ii6c009z4qvv8y05lx941c";
+    sha256 = "0lgmdpsm36a6j5s0jabv3cfg3rzqz9c9sfdqgkx399iy80jrd423";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/networking/zap/default.nix b/pkgs/tools/networking/zap/default.nix
new file mode 100644
index 000000000000..896f260f2e9d
--- /dev/null
+++ b/pkgs/tools/networking/zap/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, jre, jdk, ant }:
+
+stdenv.mkDerivation rec {
+  name = "zap-${version}";
+  version = "2.4.3";
+  src = fetchFromGitHub {
+    owner = "zaproxy";
+    repo = "zaproxy";
+    rev ="${version}";
+    sha256 = "1np9jxy09j8wzqcxw3c71x9hwrrbkjlz7qw903kv43wr74mv2snd";
+  };
+
+  buildInputs = [ jdk ant ];
+
+  buildPhase = ''
+    cd build
+    ant -f build.xml setup init  compile dist copy-source-to-build package-linux
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/share"
+    tar xvf  "ZAP_${version}_Linux.tar.gz" -C "$out/share/"
+    mkdir -p "$out/bin"
+    echo "#!/bin/sh" > "$out/bin/zap"
+    echo \"$out/share/ZAP_${version}/zap.sh\" >> "$out/bin/zap"
+    chmod +x "$out/bin/zap"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.owasp.org/index.php/ZAP";
+    description = "Java application for web penetration testing";
+    maintainers = with maintainers; [ mog ]; 
+    platforms = platforms.linux;
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 36c075071d61..b7b240780773 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -97,10 +97,10 @@ in rec {
    };
 
    nixUnstable = lib.lowPrio (common rec {
-     name = "nix-1.11pre4345_b8258a4";
+     name = "nix-1.11pre4379_786046c";
      src = fetchurl {
-       url = "http://hydra.nixos.org/build/29615957/download/4/${name}.tar.xz";
-       sha256 = "06944da78e46d8f2cbeeb02c1ab3127a06935e984bcf7a972041c7d91814f0f2";
+       url = "http://hydra.nixos.org/build/30375557/download/4/${name}.tar.xz";
+       sha256 = "ff42c70697fce7ca6eade622a31e5fbe45aed0edf1204fb491b40df207a807d5";
      };
    });
 
diff --git a/pkgs/tools/security/eid-mw/default.nix b/pkgs/tools/security/eid-mw/default.nix
index eba1bef18704..725242914414 100644
--- a/pkgs/tools/security/eid-mw/default.nix
+++ b/pkgs/tools/security/eid-mw/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchFromGitHub, autoreconfHook, gtk3, nssTools, pcsclite
 , pkgconfig }:
 
-let version = "4.1.11"; in
+let version = "4.1.12"; in
 stdenv.mkDerivation {
   name = "eid-mw-${version}";
 
   src = fetchFromGitHub {
-    sha256 = "09rp4x1vg0j4rb2dl74f8a7szqx73saacjz09jkih1sz6vwi0j0w";
+    sha256 = "12nnzh3idnl5bdjqmm8si5nj7yr42mkxhzq70s760bnfmvbqgbmc";
     rev = "v${version}";
     repo = "eid-mw";
     owner = "Fedict";
diff --git a/pkgs/tools/security/muscleframework/default.nix b/pkgs/tools/security/muscleframework/default.nix
deleted file mode 100644
index c1b9dad91ff4..000000000000
--- a/pkgs/tools/security/muscleframework/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-# The tarball has different plugins in it, and as I don't need all of them,
-# I only build one of those in this derivation
-# This is an arbitrary decision, and this simplicity fit my needs.
-# Anyone can extend the extension to build all the plugins, or to make
-# different derivations for each plugin.
-
-{stdenv, fetchurl, libmusclecard, pkgconfig, pcsclite}:
-stdenv.mkDerivation {
-  name = "muscleframework-mcardplugin-1.1.7";
-
-  src = fetchurl {
-    url = https://alioth.debian.org/frs/download.php/3056/muscleframework-1.1.7.tar.gz;
-    sha256 = "081sq25fa3k1gz0asq2995krx7pzxbfq5vx1ahsd5sbmwnplv94v";
-  };
-
-  preConfigure = ''
-    cd MCardPlugin
-    configureFlags="$configureFlags --enable-muscledropdir=$out/pcsc/services"
-  '';
-
-  buildInputs = [ libmusclecard pkgconfig pcsclite];
-
-  meta = with stdenv.lib; {
-    description = "MUSCLE smart card framework - mcard plugin";
-    homepage = http://muscleplugins.alioth.debian.org/;
-    license = licenses.bsd3;
-    maintainers = with maintainers; [viric];
-    # XXX: don't build before libmusclecard is fixed
-    # platforms = with stdenv.lib.platforms; linux;
-  };
-}
diff --git a/pkgs/tools/security/muscletool/default.nix b/pkgs/tools/security/muscletool/default.nix
deleted file mode 100644
index 34f75609e4ff..000000000000
--- a/pkgs/tools/security/muscletool/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{stdenv, fetchurl, libmusclecard, pcsclite, pkgconfig }:
-stdenv.mkDerivation {
-  name = "muscletool-2.1.1";
-
-  src = fetchurl {
-    url = https://alioth.debian.org/frs/download.php/3180/muscletool-2.1.1.tar.bz2;
-    sha256 = "11d812ijvhsaxwkr05hzxfl0n6ji9hwl5j1kv56f9gv8kyy3b9kw";
-  };
-
-  buildInputs = [ libmusclecard pcsclite pkgconfig ];
-
-  meta = with stdenv.lib; {
-    description = "Smart card applications for use with MUSCLE plugins";
-    homepage = http://muscleapps.alioth.debian.org/;
-    license = licenses.bsd3;
-    maintainers = with maintainers; [viric];
-    # XXX: don't build before libmusclecard is fixed
-    # platforms = with stdenv.lib.platforms; linux;
-  };
-}
diff --git a/pkgs/tools/security/opensc-dnie-wrapper/default.nix b/pkgs/tools/security/opensc-dnie-wrapper/default.nix
deleted file mode 100644
index 8003073159a9..000000000000
--- a/pkgs/tools/security/opensc-dnie-wrapper/default.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{stdenv, makeWrapper, ed, libopensc_dnie}:
-
-let
-   opensc = libopensc_dnie.opensc;
-in
-stdenv.mkDerivation rec {
-  name = "${opensc.name}-dnie-wrapper";
-
-  buildInputs = [ makeWrapper ];
-  
-  phases = [ "installPhase" ];
-
-  installPhase = ''
-    mkdir -p $out/etc
-    cp ${opensc}/etc/opensc.conf $out/etc
-    chmod +w $out/etc/opensc.conf
-
-    # NOTE: The libopensc-dnie.so driver requires /usr/bin/pinentry available, to sign
-
-    ${ed}/bin/ed $out/etc/opensc.conf << EOF
-    /card_drivers
-    a
-    card_drivers = dnie;
-    card_driver dnie {
-      module = ${libopensc_dnie}/lib/libopensc-dnie.so;
-    }
-    .
-    w
-    q
-    EOF
-
-    # Disable pkcs15 file caching, otherwise the card does not work
-    sed -i 's/use_caching = true/use_caching = false/' $out/etc/opensc.conf
-
-    for a in ${opensc}/bin/*; do
-      makeWrapper $a $out/bin/`basename $a` \
-        --set OPENSC_CONF $out/etc/opensc.conf
-    done
-
-    # Special wrapper for pkcs11-tool, which needs an additional parameter
-    rm $out/bin/pkcs11-tool
-    makeWrapper ${opensc}/bin/pkcs11-tool $out/bin/pkcs11-tool \
-      --set OPENSC_CONF $out/etc/opensc.conf \
-      --add-flags "--module ${opensc}/lib/opensc-pkcs11.so"
-
-    # Add, as bonus, a wrapper for the firefox in the PATH, that loads the
-    # proper opensc configuration.
-    cat > $out/bin/firefox-dnie << EOF
-    #!${stdenv.shell}
-    export OPENSC_CONF=$out/etc/opensc.conf
-    exec firefox
-    EOF
-    chmod +x $out/bin/firefox-dnie
-  '';
-
-  meta = {
-    description = "Access to the opensc tools and firefox using the Spanish national ID SmartCard";
-    longDescription = ''
-      Opensc needs a special configuration and special drivers to use the SmartCard
-      the Spanish government provides to the citizens as ID card.
-      Some wrapper scripts take care for the proper opensc configuration to be used, in order
-      to access the certificates in the SmartCard through the opensc tools or firefox.
-      Opensc will require a pcscd daemon running, managing the access to the card reader.
-    '';
-    maintainers = with stdenv.lib.maintainers; [viric];
-  };
-}
diff --git a/pkgs/tools/security/pamtester/default.nix b/pkgs/tools/security/pamtester/default.nix
new file mode 100644
index 000000000000..cdafed534085
--- /dev/null
+++ b/pkgs/tools/security/pamtester/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pam }:
+
+stdenv.mkDerivation rec {
+  name = "pamtester-0.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/pamtester/${name}.tar.gz";
+    sha256 = "1mdj1wj0adcnx354fs17928yn2xfr1hj5mfraq282dagi873sqw3";
+  };
+
+  buildInputs = [ pam ];
+
+  meta = with stdenv.lib; {
+    description = "Utility program to test the PAM facility.";
+    homepage = http://pamtester.sourceforge.net/;
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/tools/security/pinentry-mac/default.nix b/pkgs/tools/security/pinentry-mac/default.nix
new file mode 100644
index 000000000000..faf8c613ea83
--- /dev/null
+++ b/pkgs/tools/security/pinentry-mac/default.nix
@@ -0,0 +1,26 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "pinentry-mac-0.9.4";
+
+  src = fetchurl {
+    url = "https://github.com/GPGTools/pinentry-mac/archive/v0.9.4.tar.gz";
+    sha256 = "037ebb010377d3a3879ae2a832cefc4513f5c397d7d887d7b86b4e5d9a628271";
+  };
+
+  postPatch = ''
+    substituteInPlace ./Makefile --replace "xcodebuild" "/usr/bin/xcodebuild"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/Applications
+    mv build/Release/pinentry-mac.app $out/Applications
+  '';
+
+  meta = {
+    description = "Pinentry for GPG on Mac";
+    license = stdenv.lib.licenses.gpl2Plus;
+    homepage = "https://github.com/GPGTools/pinentry-mac";
+    platforms = stdenv.lib.platforms.darwin;
+  };
+}
diff --git a/pkgs/tools/security/sshuttle/default.nix b/pkgs/tools/security/sshuttle/default.nix
index e085bfaaa91a..831a815e787b 100644
--- a/pkgs/tools/security/sshuttle/default.nix
+++ b/pkgs/tools/security/sshuttle/default.nix
@@ -1,54 +1,30 @@
-{ stdenv, fetchFromGitHub, fetchpatch, makeWrapper, pandoc
-, coreutils, iptables, nettools, openssh, procps,  pythonPackages }:
+{ stdenv, pythonPackages, fetchFromGitHub, makeWrapper, pandoc
+, coreutils, iptables, nettools, openssh, procps }:
   
-let version = "0.71"; in
-stdenv.mkDerivation rec {
+pythonPackages.buildPythonPackage rec {
+  version = "0.74";
   name = "sshuttle-${version}";
 
   src = fetchFromGitHub {
-    sha256 = "0yr8nih97jg6azfj3k7064lfbh3g36l6vwyjlngl4ph6mgcki1cm";
-    rev = name;
+    sha256 = "1mx440wb1clis97nvgx67am9qssa3v11nb9irjzhnx44ygadhfcp";
+    rev = "v${version}";
     repo = "sshuttle";
     owner = "sshuttle";
   };
 
-  patches = [
-    (fetchpatch {
-      sha256 = "1yrjyvdz6k6zk020dmbagf8w49w8vhfbzgfpsq9jqdh2hbykv3m3";
-      url = https://github.com/sshuttle/sshuttle/commit/3cf5002b62650c26a50e18af8d8c5c91d754bab9.patch;
-    })
-    (fetchpatch {
-      sha256 = "091gg28cnmx200q46bcnxpp9ih9p5qlq0r3bxfm0f4qalg8rmp2g";
-      url = https://github.com/sshuttle/sshuttle/commit/d70b5f2b89e593506834cf8ea10785d96c801dfc.patch;
-    })
-    (fetchpatch {
-      sha256 = "17l9h8clqlbyxdkssavxqpb902j7b3yabrrdalybfpkhj69x8ghk";
-      url = https://github.com/sshuttle/sshuttle/commit/a38963301e9c29fbe3232f0a41ea080b642c5ad2.patch;
-    })
-  ];
+  patches = [ ./sudo.patch ];
 
+  propagatedBuildInputs = with pythonPackages; [ PyXAPI mock pytest ];
   nativeBuildInputs = [ makeWrapper pandoc ];
   buildInputs =
-    [ coreutils iptables nettools openssh procps pythonPackages.python ];
-  pythonPaths = with pythonPackages; [ PyXAPI ];
+    [ coreutils openssh ] ++
+    stdenv.lib.optionals stdenv.isLinux [ iptables nettools procps ];
 
-  preConfigure = ''
-    cd src
-  '';
-
-  installPhase = let
+  postInstall = let
     mapPath = f: x: stdenv.lib.concatStringsSep ":" (map f x);
   in ''
-    mkdir -p $out/share/sshuttle
-    cp -R sshuttle *.py compat $out/share/sshuttle
-
-    mkdir -p $out/bin
-    ln -s $out/share/sshuttle/sshuttle $out/bin
-    wrapProgram $out/bin/sshuttle \
-      --prefix PATH : "${mapPath (x: "${x}/bin") buildInputs}" \
-      --prefix PYTHONPATH : "${mapPath (x: "$(toPythonPath ${x})") pythonPaths}"
-
-    install -Dm644 sshuttle.8 $out/share/man/man8/sshuttle.8
+  wrapProgram $out/bin/sshuttle \
+    --prefix PATH : "${mapPath (x: "${x}/bin") buildInputs}" \
   '';
   
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/sshuttle/sudo.patch b/pkgs/tools/security/sshuttle/sudo.patch
new file mode 100644
index 000000000000..761bfaef8525
--- /dev/null
+++ b/pkgs/tools/security/sshuttle/sudo.patch
@@ -0,0 +1,13 @@
+diff --git a/sshuttle/client.py b/sshuttle/client.py
+index 7a7b6d7..8dde615 100644
+--- a/sshuttle/client.py
++++ b/sshuttle/client.py
+@@ -158,7 +158,7 @@ class FirewallClient:
+     def __init__(self, method_name):
+         self.auto_nets = []
+         python_path = os.path.dirname(os.path.dirname(__file__))
+-        argvbase = ([sys.executable, sys.argv[0]] +
++        argvbase = ([sys.argv[0]] +
+                     ['-v'] * (helpers.verbose or 0) +
+                     ['--method', method_name] +
+                     ['--firewall'])
diff --git a/pkgs/tools/security/tor/torbrowser.nix b/pkgs/tools/security/tor/torbrowser.nix
index e6ce333cc915..ccfd4ae044d6 100644
--- a/pkgs/tools/security/tor/torbrowser.nix
+++ b/pkgs/tools/security/tor/torbrowser.nix
@@ -46,14 +46,15 @@ in stdenv.mkDerivation rec {
     cp -R * $out/share/tor-browser
 
     cat > "$out/bin/tor-browser" << EOF
-      export HOME="\$HOME/.torbrowser4"
-      if [ ! -d \$HOME ]; then
-        mkdir -p \$HOME && cp -R $out/share/tor-browser/Browser/TorBrowser/Data \$HOME/ && chmod -R +w \$HOME
-        echo "pref(\"extensions.torlauncher.tordatadir_path\", \"\$HOME/Data/Tor/\");" >> \
-          ~/Data/Browser/profile.default/preferences/extension-overrides.js
-      fi
-      export LD_LIBRARY_PATH=${ldLibraryPath}:$out/share/tor-browser/Browser/TorBrowser/Tor
-      $out/share/tor-browser/Browser/firefox -no-remote -profile ~/Data/Browser/profile.default "$@"
+    #!${stdenv.shell}
+    export HOME="\$HOME/.torbrowser4"
+    if [ ! -d \$HOME ]; then
+      mkdir -p \$HOME && cp -R $out/share/tor-browser/Browser/TorBrowser/Data \$HOME/ && chmod -R +w \$HOME
+      echo "pref(\"extensions.torlauncher.tordatadir_path\", \"\$HOME/Data/Tor/\");" >> \
+        ~/Data/Browser/profile.default/preferences/extension-overrides.js
+    fi
+    export LD_LIBRARY_PATH=${ldLibraryPath}:$out/share/tor-browser/Browser/TorBrowser/Tor
+    $out/share/tor-browser/Browser/firefox -no-remote -profile ~/Data/Browser/profile.default "$@"
     EOF
     chmod +x $out/bin/tor-browser
   '';
diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix
index 447b1cd63b94..7c2365885444 100644
--- a/pkgs/tools/system/pciutils/default.nix
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, zlib, kmod, which }:
 
 stdenv.mkDerivation rec {
-  name = "pciutils-3.4.0"; # with database from 2015-09
+  name = "pciutils-3.4.1"; # with database from 2016-01
 
   src = fetchurl {
     url = "mirror://kernel/software/utils/pciutils/${name}.tar.xz";
-    sha256 = "15liffqvdwbpza210wfqy2y135dvg7sbyqr7gvhyjllgspv8z2gq";
+    sha256 = "0am8hiv435h2dayclnkdk8qjlpj08m4djf6sv15n9l84av658mc6";
   };
 
   buildInputs = [ pkgconfig zlib kmod which ];
diff --git a/pkgs/tools/text/dos2unix/default.nix b/pkgs/tools/text/dos2unix/default.nix
index f215c635de5b..c4bb077ef233 100644
--- a/pkgs/tools/text/dos2unix/default.nix
+++ b/pkgs/tools/text/dos2unix/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, perl, gettext }:
 
 stdenv.mkDerivation rec {
-  name = "dos2unix-7.3";
+  name = "dos2unix-7.3.2";
   
   src = fetchurl {
     url = "http://waterlan.home.xs4all.nl/dos2unix/${name}.tar.gz";
-    sha256 = "1la496gpc7b1vka36bs54pf85jfbwa6fdplgj6lamvbj59azfxc1";
+    sha256 = "12c68c6wjnwrkyjj99fn6d0i4bf53aldj259lhjwq0g0nc5yxs67";
   };
 
   configurePhase = ''
diff --git a/pkgs/tools/text/mairix/default.nix b/pkgs/tools/text/mairix/default.nix
index 97fcd0629847..f3fece1f1774 100644
--- a/pkgs/tools/text/mairix/default.nix
+++ b/pkgs/tools/text/mairix/default.nix
@@ -10,6 +10,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ zlib bzip2 bison flex ];
 
+  # https://github.com/rc0/mairix/issues/12
+  patches = [ ./mmap.patch ];
+  patchFlags = "-p2";
+
   meta = {
     homepage = http://www.rc0.org.uk/mairix;
     license = stdenv.lib.licenses.gpl2Plus;
diff --git a/pkgs/tools/text/mairix/mmap.patch b/pkgs/tools/text/mairix/mmap.patch
new file mode 100644
index 000000000000..0d43ac7ce7ae
--- /dev/null
+++ b/pkgs/tools/text/mairix/mmap.patch
@@ -0,0 +1,110 @@
+Fix "Cannot allocate memory" on mmap of files bigger than 2GiB.
+
+https://github.com/rc0/mairix/issues/12
+
+diff -ruN t/mairix-0.22/mairix.h mairix/mairix-0.22/mairix.h
+--- t/mairix-0.22/mairix.h  2010-06-05 14:41:10.000000000 -0700
++++ mairix/mairix-0.22/mairix.h 2015-07-08 13:33:06.678718524 -0700
+@@ -327,8 +327,8 @@
+   DTR8_BAD_ATTACHMENT /* corrupt attachment (e.g. no body part) */
+ };
+ struct rfc822 *data_to_rfc822(struct msg_src *src, char *data, int length, enum data_to_rfc822_error *error);
+-void create_ro_mapping(const char *filename, unsigned char **data, int *len);
+-void free_ro_mapping(unsigned char *data, int len);
++void create_ro_mapping(const char *filename, unsigned char **data, size_t *len);
++void free_ro_mapping(unsigned char *data, size_t len);
+ char *format_msg_src(struct msg_src *src);
+
+ /* In tok.c */
+diff -ruN t/mairix-0.22/mbox.c mairix/mairix-0.22/mbox.c
+--- t/mairix-0.22/mbox.c    2010-06-05 14:41:10.000000000 -0700
++++ mairix/mairix-0.22/mbox.c   2015-07-08 13:32:45.126280861 -0700
+@@ -816,7 +816,7 @@
+         mb->n_old_msgs_valid = mb->n_msgs;
+       } else {
+         unsigned char *va;
+-        int len;
++        size_t len;
+         create_ro_mapping(mb->path, &va, &len);
+         if (va) {
+           rescan_mbox(mb, (char *) va, len);
+@@ -852,7 +852,7 @@
+   int any_new = 0;
+   int N;
+   unsigned char *va;
+-  int valen;
++  size_t valen;
+   enum data_to_rfc822_error error;
+
+   for (i=0; i<db->n_mboxen; i++) {
+diff -ruN t/mairix-0.22/rfc822.c mairix/mairix-0.22/rfc822.c
+--- t/mairix-0.22/rfc822.c  2010-06-05 14:41:10.000000000 -0700
++++ mairix/mairix-0.22/rfc822.c 2015-07-08 13:30:59.388133879 -0700
+@@ -1250,7 +1250,7 @@
+ }
+ #endif /* USE_GZIP_MBOX || USE_BZIP_MBOX */
+
+-void create_ro_mapping(const char *filename, unsigned char **data, int *len)/*{{{*/
++void create_ro_mapping(const char *filename, unsigned char **data, size_t *len)/*{{{*/
+ {
+   struct stat sb;
+   int fd;
+@@ -1371,7 +1371,7 @@
+   data_alloc_type = ALLOC_MMAP;
+ }
+ /*}}}*/
+-void free_ro_mapping(unsigned char *data, int len)/*{{{*/
++void free_ro_mapping(unsigned char *data, size_t len)/*{{{*/
+ {
+   int r;
+
+@@ -1399,7 +1399,7 @@
+ /*}}}*/
+ struct rfc822 *make_rfc822(char *filename)/*{{{*/
+ {
+-  int len;
++  size_t len;
+   unsigned char *data;
+   struct rfc822 *result;
+
+diff -ruN t/mairix-0.22/search.c mairix/mairix-0.22/search.c
+--- t/mairix-0.22/search.c  2010-06-05 14:41:10.000000000 -0700
++++ mairix/mairix-0.22/search.c 2015-07-08 13:32:25.809888610 -0700
+@@ -667,7 +667,7 @@
+ static void append_file_to_mbox(const char *path, FILE *out)/*{{{*/
+ {
+   unsigned char *data;
+-  int len;
++  size_t len;
+   create_ro_mapping(path, &data, &len);
+   if (data) {
+     fprintf(out, "From mairix@mairix Mon Jan  1 12:34:56 1970\n");
+@@ -683,8 +683,8 @@
+
+ static void get_validated_mbox_msg(struct read_db *db, int msg_index,/*{{{*/
+                                    int *mbox_index,
+-                                   unsigned char **mbox_data, int *mbox_len,
+-                                   unsigned char **msg_data,  int *msg_len)
++                                   unsigned char **mbox_data, size_t *mbox_len,
++                                   unsigned char **msg_data,  size_t *msg_len)
+ {
+   /* msg_data==NULL if checksum mismatches */
+   unsigned char *start;
+@@ -715,7 +715,7 @@
+ {
+   /* Need to common up code with try_copy_to_path */
+   unsigned char *mbox_start, *msg_start;
+-  int mbox_len, msg_len;
++  size_t mbox_len, msg_len;
+   int mbox_index;
+
+   get_validated_mbox_msg(db, msg_index, &mbox_index, &mbox_start, &mbox_len, &msg_start, &msg_len);
+@@ -735,7 +735,7 @@
+ static void try_copy_to_path(struct read_db *db, int msg_index, char *target_path)/*{{{*/
+ {
+   unsigned char *data;
+-  int mbox_len, msg_len;
++  size_t mbox_len, msg_len;
+   int mbi;
+   FILE *out;
+   unsigned char *start;
diff --git a/pkgs/tools/text/silver-searcher/default.nix b/pkgs/tools/text/silver-searcher/default.nix
index fbd33ce68da6..0d6d424fa7c4 100644
--- a/pkgs/tools/text/silver-searcher/default.nix
+++ b/pkgs/tools/text/silver-searcher/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "silver-searcher-${version}";
-  version = "0.30.0";
+  version = "0.31.0";
 
   src = fetchFromGitHub {
     owner = "ggreer";
     repo = "the_silver_searcher";
     rev = "${version}";
-    sha256 = "07fz0hyisy3kisisxy558lfmmjdxq03x5ljdfxfkpw0xbfwgz14j";
+    sha256 = "1xmvdi2nbmwkmrdwkqm3zm596dz1zx87bn8i0ylkmy8rvb8ybgdv";
   };
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/tools/typesetting/tex/latex2html/default.nix b/pkgs/tools/typesetting/tex/latex2html/default.nix
deleted file mode 100644
index 45fec9f76da0..000000000000
--- a/pkgs/tools/typesetting/tex/latex2html/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, tex, perl, netpbm, ghostscript }:
-
-stdenv.mkDerivation rec {
-  name = "latex2html-2008";
-
-  src = fetchurl {
-    url = "http://www.latex2html.org/~latex2ht/current/${name}.tar.gz";
-    sha256 = "1b9pld6wz01p1pf5qwxjipdkhq34hmmw9mfkjp150hlqlcanhiar";
-  };
-
-  buildInputs = [ tex perl ghostscript netpbm ];
-
-  preConfigure = ''
-    patchShebangs .
-    sed -i -e "s|#! /bin/cat|#! $(type -p cat)|" configure
-    configureFlags="--with-texpath=$out/share/texmf-nix";
-  '';
-
-  meta = {
-    homepage = "http://www.latex2html.org/";
-    description = "Converter written in Perl that converts LaTeX documents to HTML";
-    license = stdenv.lib.licenses.gpl2Plus;
-
-    broken = true;
-  };
-
-}
diff --git a/pkgs/tools/virtualization/azure-cli/default.nix b/pkgs/tools/virtualization/azure-cli/default.nix
new file mode 100644
index 000000000000..10a40e8208c5
--- /dev/null
+++ b/pkgs/tools/virtualization/azure-cli/default.nix
@@ -0,0 +1,20 @@
+{ recurseIntoAttrs, callPackage, nodejs
+}:
+
+let
+  self = (
+    callPackage ../../../top-level/node-packages.nix {
+      inherit nodejs self;
+      generated = callPackage ./node-packages.nix { inherit self; };
+      overrides = {
+        "azure-cli" = { passthru.nodePackages = self; };
+        "easy-table" = {
+            dontMakeSourcesWritable = 1;
+            postUnpack = ''
+                chmod -R 770 "$sourceRoot"
+           '';
+        };
+      };
+    });
+in self.azure-cli
+
diff --git a/pkgs/tools/virtualization/azure-cli/node-packages.json b/pkgs/tools/virtualization/azure-cli/node-packages.json
new file mode 100644
index 000000000000..1e0f658d49c6
--- /dev/null
+++ b/pkgs/tools/virtualization/azure-cli/node-packages.json
@@ -0,0 +1 @@
+[ "azure-cli" ]
diff --git a/pkgs/tools/virtualization/azure-cli/node-packages.nix b/pkgs/tools/virtualization/azure-cli/node-packages.nix
new file mode 100644
index 000000000000..9601e4215abe
--- /dev/null
+++ b/pkgs/tools/virtualization/azure-cli/node-packages.nix
@@ -0,0 +1,4965 @@
+{ self, fetchurl, fetchgit ? null, lib }:
+
+{
+  by-spec."adal-node"."0.1.16" =
+    self.by-version."adal-node"."0.1.16";
+  by-version."adal-node"."0.1.16" = self.buildNodePackage {
+    name = "adal-node-0.1.16";
+    version = "0.1.16";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/adal-node/-/adal-node-0.1.16.tgz";
+      name = "adal-node-0.1.16.tgz";
+      sha1 = "ed205574c05ae93c68f0b59909588242f2c9ccf8";
+    };
+    deps = {
+      "date-utils-1.2.17" = self.by-version."date-utils"."1.2.17";
+      "jws-3.1.0" = self.by-version."jws"."3.1.0";
+      "node-uuid-1.4.1" = self.by-version."node-uuid"."1.4.1";
+      "request-2.67.0" = self.by-version."request"."2.67.0";
+      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
+      "xmldom-0.1.20" = self.by-version."xmldom"."0.1.20";
+      "xpath.js-1.0.6" = self.by-version."xpath.js"."1.0.6";
+      "async-1.5.2" = self.by-version."async"."1.5.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."adal-node"."0.1.17" =
+    self.by-version."adal-node"."0.1.17";
+  by-version."adal-node"."0.1.17" = self.buildNodePackage {
+    name = "adal-node-0.1.17";
+    version = "0.1.17";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/adal-node/-/adal-node-0.1.17.tgz";
+      name = "adal-node-0.1.17.tgz";
+      sha1 = "7946eb374c837730bd3cc49b0894928154e505d0";
+    };
+    deps = {
+      "date-utils-1.2.17" = self.by-version."date-utils"."1.2.17";
+      "jws-3.1.0" = self.by-version."jws"."3.1.0";
+      "node-uuid-1.4.1" = self.by-version."node-uuid"."1.4.1";
+      "request-2.67.0" = self.by-version."request"."2.67.0";
+      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
+      "xmldom-0.1.20" = self.by-version."xmldom"."0.1.20";
+      "xpath.js-1.0.6" = self.by-version."xpath.js"."1.0.6";
+      "async-1.5.2" = self.by-version."async"."1.5.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."amdefine".">=0.0.4" =
+    self.by-version."amdefine"."1.0.0";
+  by-version."amdefine"."1.0.0" = self.buildNodePackage {
+    name = "amdefine-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz";
+      name = "amdefine-1.0.0.tgz";
+      sha1 = "fd17474700cb5cc9c2b709f0be9d23ce3c198c33";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ansi-regex"."^2.0.0" =
+    self.by-version."ansi-regex"."2.0.0";
+  by-version."ansi-regex"."2.0.0" = self.buildNodePackage {
+    name = "ansi-regex-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz";
+      name = "ansi-regex-2.0.0.tgz";
+      sha1 = "c5061b6e0ef8a81775e50f5d66151bf6bf371107";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ansi-styles"."^2.1.0" =
+    self.by-version."ansi-styles"."2.1.0";
+  by-version."ansi-styles"."2.1.0" = self.buildNodePackage {
+    name = "ansi-styles-2.1.0";
+    version = "2.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz";
+      name = "ansi-styles-2.1.0.tgz";
+      sha1 = "990f747146927b559a932bf92959163d60c0d0e2";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."asn1"."0.1.11" =
+    self.by-version."asn1"."0.1.11";
+  by-version."asn1"."0.1.11" = self.buildNodePackage {
+    name = "asn1-0.1.11";
+    version = "0.1.11";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz";
+      name = "asn1-0.1.11.tgz";
+      sha1 = "559be18376d08a4ec4dbe80877d27818639b2df7";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."asn1".">=0.2.3 <0.3.0" =
+    self.by-version."asn1"."0.2.3";
+  by-version."asn1"."0.2.3" = self.buildNodePackage {
+    name = "asn1-0.2.3";
+    version = "0.2.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz";
+      name = "asn1-0.2.3.tgz";
+      sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."asn1.js"."^2.0.3" =
+    self.by-version."asn1.js"."2.2.1";
+  by-version."asn1.js"."2.2.1" = self.buildNodePackage {
+    name = "asn1.js-2.2.1";
+    version = "2.2.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/asn1.js/-/asn1.js-2.2.1.tgz";
+      name = "asn1.js-2.2.1.tgz";
+      sha1 = "c8ba4dd68e84431288126230cb2045bdfa9fbfe1";
+    };
+    deps = {
+      "bn.js-2.2.0" = self.by-version."bn.js"."2.2.0";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "minimalistic-assert-1.0.0" = self.by-version."minimalistic-assert"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."assert-plus"."0.1.x" =
+    self.by-version."assert-plus"."0.1.5";
+  by-version."assert-plus"."0.1.5" = self.buildNodePackage {
+    name = "assert-plus-0.1.5";
+    version = "0.1.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz";
+      name = "assert-plus-0.1.5.tgz";
+      sha1 = "ee74009413002d84cec7219c6ac811812e723160";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."assert-plus".">=0.2.0 <0.3.0" =
+    self.by-version."assert-plus"."0.2.0";
+  by-version."assert-plus"."0.2.0" = self.buildNodePackage {
+    name = "assert-plus-0.2.0";
+    version = "0.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz";
+      name = "assert-plus-0.2.0.tgz";
+      sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."assert-plus"."^0.1.5" =
+    self.by-version."assert-plus"."0.1.5";
+  by-spec."async"."0.1.x" =
+    self.by-version."async"."0.1.22";
+  by-version."async"."0.1.22" = self.buildNodePackage {
+    name = "async-0.1.22";
+    version = "0.1.22";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/async/-/async-0.1.22.tgz";
+      name = "async-0.1.22.tgz";
+      sha1 = "0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."async"."0.2.7" =
+    self.by-version."async"."0.2.7";
+  by-version."async"."0.2.7" = self.buildNodePackage {
+    name = "async-0.2.7";
+    version = "0.2.7";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/async/-/async-0.2.7.tgz";
+      name = "async-0.2.7.tgz";
+      sha1 = "44c5ee151aece6c4bf5364cfc7c28fe4e58f18df";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."async"."1.4.2" =
+    self.by-version."async"."1.4.2";
+  by-version."async"."1.4.2" = self.buildNodePackage {
+    name = "async-1.4.2";
+    version = "1.4.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/async/-/async-1.4.2.tgz";
+      name = "async-1.4.2.tgz";
+      sha1 = "6c9edcb11ced4f0dd2f2d40db0d49a109c088aab";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."async".">=0.6.0" =
+    self.by-version."async"."1.5.2";
+  by-version."async"."1.5.2" = self.buildNodePackage {
+    name = "async-1.5.2";
+    version = "1.5.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/async/-/async-1.5.2.tgz";
+      name = "async-1.5.2.tgz";
+      sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."async"."^1.4.0" =
+    self.by-version."async"."1.5.2";
+  by-spec."async"."~0.9.0" =
+    self.by-version."async"."0.9.2";
+  by-version."async"."0.9.2" = self.buildNodePackage {
+    name = "async-0.9.2";
+    version = "0.9.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/async/-/async-0.9.2.tgz";
+      name = "async-0.9.2.tgz";
+      sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."aws-sign2"."~0.5.0" =
+    self.by-version."aws-sign2"."0.5.0";
+  by-version."aws-sign2"."0.5.0" = self.buildNodePackage {
+    name = "aws-sign2-0.5.0";
+    version = "0.5.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz";
+      name = "aws-sign2-0.5.0.tgz";
+      sha1 = "c57103f7a17fc037f02d7c2e64b602ea223f7d63";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."aws-sign2"."~0.6.0" =
+    self.by-version."aws-sign2"."0.6.0";
+  by-version."aws-sign2"."0.6.0" = self.buildNodePackage {
+    name = "aws-sign2-0.6.0";
+    version = "0.6.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz";
+      name = "aws-sign2-0.6.0.tgz";
+      sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-apiapp"."0.1.3" =
+    self.by-version."azure-arm-apiapp"."0.1.3";
+  by-version."azure-arm-apiapp"."0.1.3" = self.buildNodePackage {
+    name = "azure-arm-apiapp-0.1.3";
+    version = "0.1.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-apiapp/-/azure-arm-apiapp-0.1.3.tgz";
+      name = "azure-arm-apiapp-0.1.3.tgz";
+      sha1 = "5fcc896027965655e27b63bfba7c5592db44ee91";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+      "moment-2.6.0" = self.by-version."moment"."2.6.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-authorization"."2.0.0" =
+    self.by-version."azure-arm-authorization"."2.0.0";
+  by-version."azure-arm-authorization"."2.0.0" = self.buildNodePackage {
+    name = "azure-arm-authorization-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-authorization/-/azure-arm-authorization-2.0.0.tgz";
+      name = "azure-arm-authorization-2.0.0.tgz";
+      sha1 = "56b558ba43b9cb5657662251dabe3cb34c16c56f";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-commerce"."0.1.1" =
+    self.by-version."azure-arm-commerce"."0.1.1";
+  by-version."azure-arm-commerce"."0.1.1" = self.buildNodePackage {
+    name = "azure-arm-commerce-0.1.1";
+    version = "0.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-commerce/-/azure-arm-commerce-0.1.1.tgz";
+      name = "azure-arm-commerce-0.1.1.tgz";
+      sha1 = "3329693b8aba7d1b84e10ae2655d54262a1f1c59";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-compute"."0.13.0" =
+    self.by-version."azure-arm-compute"."0.13.0";
+  by-version."azure-arm-compute"."0.13.0" = self.buildNodePackage {
+    name = "azure-arm-compute-0.13.0";
+    version = "0.13.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-compute/-/azure-arm-compute-0.13.0.tgz";
+      name = "azure-arm-compute-0.13.0.tgz";
+      sha1 = "0442a5f9d49d9dea8fc7391a100c916e19e0b1d9";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-datalake-analytics"."0.1.2" =
+    self.by-version."azure-arm-datalake-analytics"."0.1.2";
+  by-version."azure-arm-datalake-analytics"."0.1.2" = self.buildNodePackage {
+    name = "azure-arm-datalake-analytics-0.1.2";
+    version = "0.1.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-datalake-analytics/-/azure-arm-datalake-analytics-0.1.2.tgz";
+      name = "azure-arm-datalake-analytics-0.1.2.tgz";
+      sha1 = "7b8c26ba3808c220e7c1183f884d72f3e8d915a9";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "moment-2.11.1" = self.by-version."moment"."2.11.1";
+      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-datalake-store"."0.1.2" =
+    self.by-version."azure-arm-datalake-store"."0.1.2";
+  by-version."azure-arm-datalake-store"."0.1.2" = self.buildNodePackage {
+    name = "azure-arm-datalake-store-0.1.2";
+    version = "0.1.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-datalake-store/-/azure-arm-datalake-store-0.1.2.tgz";
+      name = "azure-arm-datalake-store-0.1.2.tgz";
+      sha1 = "dc8be199bfa4c8d4b10efe70d35a2414b8eb8d9a";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-dns"."0.10.1" =
+    self.by-version."azure-arm-dns"."0.10.1";
+  by-version."azure-arm-dns"."0.10.1" = self.buildNodePackage {
+    name = "azure-arm-dns-0.10.1";
+    version = "0.10.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-dns/-/azure-arm-dns-0.10.1.tgz";
+      name = "azure-arm-dns-0.10.1.tgz";
+      sha1 = "8f6dded24a8b8dbc9b81f6b273970ac8ba2a0c54";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-hdinsight"."0.1.0" =
+    self.by-version."azure-arm-hdinsight"."0.1.0";
+  by-version."azure-arm-hdinsight"."0.1.0" = self.buildNodePackage {
+    name = "azure-arm-hdinsight-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-hdinsight/-/azure-arm-hdinsight-0.1.0.tgz";
+      name = "azure-arm-hdinsight-0.1.0.tgz";
+      sha1 = "10243278ae8cca0de0d68a2cbbe0fc9119a859ef";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-hdinsight-jobs"."0.1.0" =
+    self.by-version."azure-arm-hdinsight-jobs"."0.1.0";
+  by-version."azure-arm-hdinsight-jobs"."0.1.0" = self.buildNodePackage {
+    name = "azure-arm-hdinsight-jobs-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-hdinsight-jobs/-/azure-arm-hdinsight-jobs-0.1.0.tgz";
+      name = "azure-arm-hdinsight-jobs-0.1.0.tgz";
+      sha1 = "252938f18d4341adf9942261656e791490c3c220";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-insights"."0.10.2" =
+    self.by-version."azure-arm-insights"."0.10.2";
+  by-version."azure-arm-insights"."0.10.2" = self.buildNodePackage {
+    name = "azure-arm-insights-0.10.2";
+    version = "0.10.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-insights/-/azure-arm-insights-0.10.2.tgz";
+      name = "azure-arm-insights-0.10.2.tgz";
+      sha1 = "3aad583c147685e35bc55fd0f013c701882fea42";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "moment-2.6.0" = self.by-version."moment"."2.6.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-network"."0.10.6" =
+    self.by-version."azure-arm-network"."0.10.6";
+  by-version."azure-arm-network"."0.10.6" = self.buildNodePackage {
+    name = "azure-arm-network-0.10.6";
+    version = "0.10.6";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-network/-/azure-arm-network-0.10.6.tgz";
+      name = "azure-arm-network-0.10.6.tgz";
+      sha1 = "d7e77e34fe41007a54154475185ac405e59073b3";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-rediscache"."0.1.0" =
+    self.by-version."azure-arm-rediscache"."0.1.0";
+  by-version."azure-arm-rediscache"."0.1.0" = self.buildNodePackage {
+    name = "azure-arm-rediscache-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-rediscache/-/azure-arm-rediscache-0.1.0.tgz";
+      name = "azure-arm-rediscache-0.1.0.tgz";
+      sha1 = "2527ce57541fc5264627f93f62e4ffcfd01df498";
+    };
+    deps = {
+      "ms-rest-1.2.0" = self.by-version."ms-rest"."1.2.0";
+      "ms-rest-azure-1.2.0" = self.by-version."ms-rest-azure"."1.2.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-resource"."0.10.7" =
+    self.by-version."azure-arm-resource"."0.10.7";
+  by-version."azure-arm-resource"."0.10.7" = self.buildNodePackage {
+    name = "azure-arm-resource-0.10.7";
+    version = "0.10.7";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-resource/-/azure-arm-resource-0.10.7.tgz";
+      name = "azure-arm-resource-0.10.7.tgz";
+      sha1 = "f637acc4c1f1ea17fc52a31164c75f6b4f7c70be";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-storage"."0.11.0" =
+    self.by-version."azure-arm-storage"."0.11.0";
+  by-version."azure-arm-storage"."0.11.0" = self.buildNodePackage {
+    name = "azure-arm-storage-0.11.0";
+    version = "0.11.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-storage/-/azure-arm-storage-0.11.0.tgz";
+      name = "azure-arm-storage-0.11.0.tgz";
+      sha1 = "ba5bc8d616b835ddb6149d462a424d534ac87c95";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-trafficmanager"."0.10.4" =
+    self.by-version."azure-arm-trafficmanager"."0.10.4";
+  by-version."azure-arm-trafficmanager"."0.10.4" = self.buildNodePackage {
+    name = "azure-arm-trafficmanager-0.10.4";
+    version = "0.10.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-trafficmanager/-/azure-arm-trafficmanager-0.10.4.tgz";
+      name = "azure-arm-trafficmanager-0.10.4.tgz";
+      sha1 = "f1a788c3c97c7c6f8d82cef6034bbdbe68bb29e3";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-arm-website"."0.10.0" =
+    self.by-version."azure-arm-website"."0.10.0";
+  by-version."azure-arm-website"."0.10.0" = self.buildNodePackage {
+    name = "azure-arm-website-0.10.0";
+    version = "0.10.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-arm-website/-/azure-arm-website-0.10.0.tgz";
+      name = "azure-arm-website-0.10.0.tgz";
+      sha1 = "610400ecb801bff16b7e2d7c1c6d1fe99c4f9ec9";
+    };
+    deps = {
+      "azure-common-0.9.12" = self.by-version."azure-common"."0.9.12";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+      "moment-2.6.0" = self.by-version."moment"."2.6.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-asm-compute"."0.11.0" =
+    self.by-version."azure-asm-compute"."0.11.0";
+  by-version."azure-asm-compute"."0.11.0" = self.buildNodePackage {
+    name = "azure-asm-compute-0.11.0";
+    version = "0.11.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-asm-compute/-/azure-asm-compute-0.11.0.tgz";
+      name = "azure-asm-compute-0.11.0.tgz";
+      sha1 = "348ffae392ac0ce4aade50be99b8c89fd89701a0";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-asm-hdinsight"."0.10.2" =
+    self.by-version."azure-asm-hdinsight"."0.10.2";
+  by-version."azure-asm-hdinsight"."0.10.2" = self.buildNodePackage {
+    name = "azure-asm-hdinsight-0.10.2";
+    version = "0.10.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-asm-hdinsight/-/azure-asm-hdinsight-0.10.2.tgz";
+      name = "azure-asm-hdinsight-0.10.2.tgz";
+      sha1 = "2d11cdaaa073fc38f31c718991d5923fb7259fa0";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-asm-mgmt"."0.10.1" =
+    self.by-version."azure-asm-mgmt"."0.10.1";
+  by-version."azure-asm-mgmt"."0.10.1" = self.buildNodePackage {
+    name = "azure-asm-mgmt-0.10.1";
+    version = "0.10.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-asm-mgmt/-/azure-asm-mgmt-0.10.1.tgz";
+      name = "azure-asm-mgmt-0.10.1.tgz";
+      sha1 = "d0a44b47ccabf338b19d53271675733cfa2d1751";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-asm-network"."0.10.2" =
+    self.by-version."azure-asm-network"."0.10.2";
+  by-version."azure-asm-network"."0.10.2" = self.buildNodePackage {
+    name = "azure-asm-network-0.10.2";
+    version = "0.10.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-asm-network/-/azure-asm-network-0.10.2.tgz";
+      name = "azure-asm-network-0.10.2.tgz";
+      sha1 = "eeeffd4c3f86f67212c995213fe5d5c1ebddc651";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-asm-sb"."0.10.1" =
+    self.by-version."azure-asm-sb"."0.10.1";
+  by-version."azure-asm-sb"."0.10.1" = self.buildNodePackage {
+    name = "azure-asm-sb-0.10.1";
+    version = "0.10.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-asm-sb/-/azure-asm-sb-0.10.1.tgz";
+      name = "azure-asm-sb-0.10.1.tgz";
+      sha1 = "92487b24166041119714f66760ec1f36e8dc7222";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-asm-sql"."0.10.1" =
+    self.by-version."azure-asm-sql"."0.10.1";
+  by-version."azure-asm-sql"."0.10.1" = self.buildNodePackage {
+    name = "azure-asm-sql-0.10.1";
+    version = "0.10.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-asm-sql/-/azure-asm-sql-0.10.1.tgz";
+      name = "azure-asm-sql-0.10.1.tgz";
+      sha1 = "47728df19a6d4f1cc935235c69fa9cf048cc8f42";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-asm-storage"."0.10.1" =
+    self.by-version."azure-asm-storage"."0.10.1";
+  by-version."azure-asm-storage"."0.10.1" = self.buildNodePackage {
+    name = "azure-asm-storage-0.10.1";
+    version = "0.10.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-asm-storage/-/azure-asm-storage-0.10.1.tgz";
+      name = "azure-asm-storage-0.10.1.tgz";
+      sha1 = "878ad15f6daee36e44f30e5cd348fb61a8f14172";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-asm-subscription"."0.10.1" =
+    self.by-version."azure-asm-subscription"."0.10.1";
+  by-version."azure-asm-subscription"."0.10.1" = self.buildNodePackage {
+    name = "azure-asm-subscription-0.10.1";
+    version = "0.10.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-asm-subscription/-/azure-asm-subscription-0.10.1.tgz";
+      name = "azure-asm-subscription-0.10.1.tgz";
+      sha1 = "917a5e87a04b69c0f5c29339fe910bb5e5e7a04c";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-asm-trafficmanager"."0.10.3" =
+    self.by-version."azure-asm-trafficmanager"."0.10.3";
+  by-version."azure-asm-trafficmanager"."0.10.3" = self.buildNodePackage {
+    name = "azure-asm-trafficmanager-0.10.3";
+    version = "0.10.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-asm-trafficmanager/-/azure-asm-trafficmanager-0.10.3.tgz";
+      name = "azure-asm-trafficmanager-0.10.3.tgz";
+      sha1 = "91e2e63d73869090613cd42ee38a3823e55f4447";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-asm-website"."0.10.1" =
+    self.by-version."azure-asm-website"."0.10.1";
+  by-version."azure-asm-website"."0.10.1" = self.buildNodePackage {
+    name = "azure-asm-website-0.10.1";
+    version = "0.10.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-asm-website/-/azure-asm-website-0.10.1.tgz";
+      name = "azure-asm-website-0.10.1.tgz";
+      sha1 = "0b8fabdb460e3b36ee72836d74630cc9685f572e";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+      "moment-2.6.0" = self.by-version."moment"."2.6.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-cli"."*" =
+    self.by-version."azure-cli"."0.9.13";
+  by-version."azure-cli"."0.9.13" = self.buildNodePackage {
+    name = "azure-cli-0.9.13";
+    version = "0.9.13";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-cli/-/azure-cli-0.9.13.tgz";
+      name = "azure-cli-0.9.13.tgz";
+      sha1 = "6792c21c0b826d07759e0c7e9b718c291be1381f";
+    };
+    deps = {
+      "adal-node-0.1.17" = self.by-version."adal-node"."0.1.17";
+      "async-1.4.2" = self.by-version."async"."1.4.2";
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "azure-arm-apiapp-0.1.3" = self.by-version."azure-arm-apiapp"."0.1.3";
+      "azure-arm-authorization-2.0.0" = self.by-version."azure-arm-authorization"."2.0.0";
+      "azure-arm-commerce-0.1.1" = self.by-version."azure-arm-commerce"."0.1.1";
+      "azure-arm-compute-0.13.0" = self.by-version."azure-arm-compute"."0.13.0";
+      "azure-arm-hdinsight-0.1.0" = self.by-version."azure-arm-hdinsight"."0.1.0";
+      "azure-arm-hdinsight-jobs-0.1.0" = self.by-version."azure-arm-hdinsight-jobs"."0.1.0";
+      "azure-arm-insights-0.10.2" = self.by-version."azure-arm-insights"."0.10.2";
+      "azure-arm-network-0.10.6" = self.by-version."azure-arm-network"."0.10.6";
+      "azure-arm-trafficmanager-0.10.4" = self.by-version."azure-arm-trafficmanager"."0.10.4";
+      "azure-arm-dns-0.10.1" = self.by-version."azure-arm-dns"."0.10.1";
+      "azure-arm-website-0.10.0" = self.by-version."azure-arm-website"."0.10.0";
+      "azure-arm-rediscache-0.1.0" = self.by-version."azure-arm-rediscache"."0.1.0";
+      "azure-arm-datalake-analytics-0.1.2" = self.by-version."azure-arm-datalake-analytics"."0.1.2";
+      "azure-arm-datalake-store-0.1.2" = self.by-version."azure-arm-datalake-store"."0.1.2";
+      "azure-extra-0.1.12" = self.by-version."azure-extra"."0.1.12";
+      "azure-gallery-2.0.0-pre.18" = self.by-version."azure-gallery"."2.0.0-pre.18";
+      "azure-keyvault-0.10.1" = self.by-version."azure-keyvault"."0.10.1";
+      "azure-asm-compute-0.11.0" = self.by-version."azure-asm-compute"."0.11.0";
+      "azure-asm-hdinsight-0.10.2" = self.by-version."azure-asm-hdinsight"."0.10.2";
+      "azure-asm-trafficmanager-0.10.3" = self.by-version."azure-asm-trafficmanager"."0.10.3";
+      "azure-asm-mgmt-0.10.1" = self.by-version."azure-asm-mgmt"."0.10.1";
+      "azure-monitoring-0.10.2" = self.by-version."azure-monitoring"."0.10.2";
+      "azure-asm-network-0.10.2" = self.by-version."azure-asm-network"."0.10.2";
+      "azure-arm-resource-0.10.7" = self.by-version."azure-arm-resource"."0.10.7";
+      "azure-arm-storage-0.11.0" = self.by-version."azure-arm-storage"."0.11.0";
+      "azure-asm-sb-0.10.1" = self.by-version."azure-asm-sb"."0.10.1";
+      "azure-asm-sql-0.10.1" = self.by-version."azure-asm-sql"."0.10.1";
+      "azure-asm-storage-0.10.1" = self.by-version."azure-asm-storage"."0.10.1";
+      "azure-asm-subscription-0.10.1" = self.by-version."azure-asm-subscription"."0.10.1";
+      "azure-asm-website-0.10.1" = self.by-version."azure-asm-website"."0.10.1";
+      "azure-storage-0.6.0" = self.by-version."azure-storage"."0.6.0";
+      "caller-id-0.1.0" = self.by-version."caller-id"."0.1.0";
+      "colors-0.6.2" = self.by-version."colors"."0.6.2";
+      "commander-1.0.4" = self.by-version."commander"."1.0.4";
+      "easy-table-0.0.1" = self.by-version."easy-table"."0.0.1";
+      "event-stream-3.1.5" = self.by-version."event-stream"."3.1.5";
+      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
+      "github-0.1.6" = self.by-version."github"."0.1.6";
+      "image-size-0.3.5" = self.by-version."image-size"."0.3.5";
+      "js2xmlparser-1.0.0" = self.by-version."js2xmlparser"."1.0.0";
+      "jsrsasign-4.8.2" = self.by-version."jsrsasign"."4.8.2";
+      "jszip-2.5.0" = self.by-version."jszip"."2.5.0";
+      "kuduscript-1.0.6" = self.by-version."kuduscript"."1.0.6";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "moment-2.6.0" = self.by-version."moment"."2.6.0";
+      "ms-rest-azure-1.2.0" = self.by-version."ms-rest-azure"."1.2.0";
+      "node-forge-0.6.23" = self.by-version."node-forge"."0.6.23";
+      "node-uuid-1.2.0" = self.by-version."node-uuid"."1.2.0";
+      "number-is-nan-1.0.0" = self.by-version."number-is-nan"."1.0.0";
+      "omelette-0.1.0" = self.by-version."omelette"."0.1.0";
+      "openssl-wrapper-0.2.1" = self.by-version."openssl-wrapper"."0.2.1";
+      "readable-stream-1.0.33" = self.by-version."readable-stream"."1.0.33";
+      "request-2.52.0" = self.by-version."request"."2.52.0";
+      "ssh-key-to-pem-0.11.0" = self.by-version."ssh-key-to-pem"."0.11.0";
+      "streamline-0.10.17" = self.by-version."streamline"."0.10.17";
+      "streamline-streams-0.1.5" = self.by-version."streamline-streams"."0.1.5";
+      "swagger-schema-official-2.0.0-a33091a" = self.by-version."swagger-schema-official"."2.0.0-a33091a";
+      "through-2.3.4" = self.by-version."through"."2.3.4";
+      "tmp-0.0.25" = self.by-version."tmp"."0.0.25";
+      "tunnel-0.0.2" = self.by-version."tunnel"."0.0.2";
+      "tv4-1.2.7" = self.by-version."tv4"."1.2.7";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+      "validator-3.1.0" = self.by-version."validator"."3.1.0";
+      "walk-2.3.9" = self.by-version."walk"."2.3.9";
+      "winston-0.6.2" = self.by-version."winston"."0.6.2";
+      "wordwrap-0.0.2" = self.by-version."wordwrap"."0.0.2";
+      "xml2js-0.1.14" = self.by-version."xml2js"."0.1.14";
+      "xmlbuilder-0.4.3" = self.by-version."xmlbuilder"."0.4.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  "azure-cli" = self.by-version."azure-cli"."0.9.13";
+  by-spec."azure-common"."0.9.12" =
+    self.by-version."azure-common"."0.9.12";
+  by-version."azure-common"."0.9.12" = self.buildNodePackage {
+    name = "azure-common-0.9.12";
+    version = "0.9.12";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-common/-/azure-common-0.9.12.tgz";
+      name = "azure-common-0.9.12.tgz";
+      sha1 = "8ca8167c2dbaa43b61e3caa9c7d98e78908749f6";
+    };
+    deps = {
+      "xml2js-0.2.7" = self.by-version."xml2js"."0.2.7";
+      "xmlbuilder-0.4.3" = self.by-version."xmlbuilder"."0.4.3";
+      "dateformat-1.0.2-1.2.3" = self.by-version."dateformat"."1.0.2-1.2.3";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+      "tunnel-0.0.3" = self.by-version."tunnel"."0.0.3";
+      "request-2.45.0" = self.by-version."request"."2.45.0";
+      "validator-3.1.0" = self.by-version."validator"."3.1.0";
+      "envconf-0.0.4" = self.by-version."envconf"."0.0.4";
+      "duplexer-0.1.1" = self.by-version."duplexer"."0.1.1";
+      "through-2.3.8" = self.by-version."through"."2.3.8";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-common"."0.9.16" =
+    self.by-version."azure-common"."0.9.16";
+  by-version."azure-common"."0.9.16" = self.buildNodePackage {
+    name = "azure-common-0.9.16";
+    version = "0.9.16";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-common/-/azure-common-0.9.16.tgz";
+      name = "azure-common-0.9.16.tgz";
+      sha1 = "0158ce02f7341d08f4146e3e232e3c327d10ac6e";
+    };
+    deps = {
+      "xml2js-0.2.7" = self.by-version."xml2js"."0.2.7";
+      "xmlbuilder-0.4.3" = self.by-version."xmlbuilder"."0.4.3";
+      "dateformat-1.0.2-1.2.3" = self.by-version."dateformat"."1.0.2-1.2.3";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+      "tunnel-0.0.3" = self.by-version."tunnel"."0.0.3";
+      "request-2.45.0" = self.by-version."request"."2.45.0";
+      "validator-3.22.2" = self.by-version."validator"."3.22.2";
+      "envconf-0.0.4" = self.by-version."envconf"."0.0.4";
+      "duplexer-0.1.1" = self.by-version."duplexer"."0.1.1";
+      "through-2.3.8" = self.by-version."through"."2.3.8";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-common"."^0.9.10" =
+    self.by-version."azure-common"."0.9.16";
+  by-spec."azure-common"."^0.9.13" =
+    self.by-version."azure-common"."0.9.16";
+  by-spec."azure-extra"."0.1.12" =
+    self.by-version."azure-extra"."0.1.12";
+  by-version."azure-extra"."0.1.12" = self.buildNodePackage {
+    name = "azure-extra-0.1.12";
+    version = "0.1.12";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-extra/-/azure-extra-0.1.12.tgz";
+      name = "azure-extra-0.1.12.tgz";
+      sha1 = "78a0c3b65e981df59e23428b56172f6337a8920a";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-gallery"."2.0.0-pre.18" =
+    self.by-version."azure-gallery"."2.0.0-pre.18";
+  by-version."azure-gallery"."2.0.0-pre.18" = self.buildNodePackage {
+    name = "azure-gallery-2.0.0-pre.18";
+    version = "2.0.0-pre.18";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-gallery/-/azure-gallery-2.0.0-pre.18.tgz";
+      name = "azure-gallery-2.0.0-pre.18.tgz";
+      sha1 = "3cd4c5e4e0091551d6a5ee757af2354c8a36b3e6";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-keyvault"."0.10.1" =
+    self.by-version."azure-keyvault"."0.10.1";
+  by-version."azure-keyvault"."0.10.1" = self.buildNodePackage {
+    name = "azure-keyvault-0.10.1";
+    version = "0.10.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-keyvault/-/azure-keyvault-0.10.1.tgz";
+      name = "azure-keyvault-0.10.1.tgz";
+      sha1 = "b3899d04b5115a22b794a9e83f89201a66c83855";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-monitoring"."0.10.2" =
+    self.by-version."azure-monitoring"."0.10.2";
+  by-version."azure-monitoring"."0.10.2" = self.buildNodePackage {
+    name = "azure-monitoring-0.10.2";
+    version = "0.10.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-monitoring/-/azure-monitoring-0.10.2.tgz";
+      name = "azure-monitoring-0.10.2.tgz";
+      sha1 = "2b7d493306747b43e4e2dcad44d65328e6c3cf57";
+    };
+    deps = {
+      "azure-common-0.9.16" = self.by-version."azure-common"."0.9.16";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+      "moment-2.6.0" = self.by-version."moment"."2.6.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."azure-storage"."0.6.0" =
+    self.by-version."azure-storage"."0.6.0";
+  by-version."azure-storage"."0.6.0" = self.buildNodePackage {
+    name = "azure-storage-0.6.0";
+    version = "0.6.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/azure-storage/-/azure-storage-0.6.0.tgz";
+      name = "azure-storage-0.6.0.tgz";
+      sha1 = "e856c2069d1a9a6926936d70d6854d69230e7b4a";
+    };
+    deps = {
+      "extend-1.2.1" = self.by-version."extend"."1.2.1";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
+      "readable-stream-1.0.33" = self.by-version."readable-stream"."1.0.33";
+      "request-2.57.0" = self.by-version."request"."2.57.0";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+      "validator-3.22.2" = self.by-version."validator"."3.22.2";
+      "xml2js-0.2.7" = self.by-version."xml2js"."0.2.7";
+      "xmlbuilder-0.4.3" = self.by-version."xmlbuilder"."0.4.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."base64-url"."^1.2.1" =
+    self.by-version."base64-url"."1.2.1";
+  by-version."base64-url"."1.2.1" = self.buildNodePackage {
+    name = "base64-url-1.2.1";
+    version = "1.2.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz";
+      name = "base64-url-1.2.1.tgz";
+      sha1 = "199fd661702a0e7b7dcae6e0698bb089c52f6d78";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."base64url"."~0.0.4" =
+    self.by-version."base64url"."0.0.6";
+  by-version."base64url"."0.0.6" = self.buildNodePackage {
+    name = "base64url-0.0.6";
+    version = "0.0.6";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/base64url/-/base64url-0.0.6.tgz";
+      name = "base64url-0.0.6.tgz";
+      sha1 = "9597b36b330db1c42477322ea87ea8027499b82b";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."base64url"."~1.0.4" =
+    self.by-version."base64url"."1.0.5";
+  by-version."base64url"."1.0.5" = self.buildNodePackage {
+    name = "base64url-1.0.5";
+    version = "1.0.5";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/base64url/-/base64url-1.0.5.tgz";
+      name = "base64url-1.0.5.tgz";
+      sha1 = "c54bcb4f9a2b7da422bca549e71c1640b533b825";
+    };
+    deps = {
+      "concat-stream-1.4.10" = self.by-version."concat-stream"."1.4.10";
+      "meow-2.0.0" = self.by-version."meow"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."bl"."~0.9.0" =
+    self.by-version."bl"."0.9.4";
+  by-version."bl"."0.9.4" = self.buildNodePackage {
+    name = "bl-0.9.4";
+    version = "0.9.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bl/-/bl-0.9.4.tgz";
+      name = "bl-0.9.4.tgz";
+      sha1 = "4702ddf72fbe0ecd82787c00c113aea1935ad0e7";
+    };
+    deps = {
+      "readable-stream-1.0.33" = self.by-version."readable-stream"."1.0.33";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."bl"."~1.0.0" =
+    self.by-version."bl"."1.0.0";
+  by-version."bl"."1.0.0" = self.buildNodePackage {
+    name = "bl-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bl/-/bl-1.0.0.tgz";
+      name = "bl-1.0.0.tgz";
+      sha1 = "ada9a8a89a6d7ac60862f7dec7db207873e0c3f5";
+    };
+    deps = {
+      "readable-stream-2.0.5" = self.by-version."readable-stream"."2.0.5";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."bluebird"."^2.9.30" =
+    self.by-version."bluebird"."2.10.2";
+  by-version."bluebird"."2.10.2" = self.buildNodePackage {
+    name = "bluebird-2.10.2";
+    version = "2.10.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz";
+      name = "bluebird-2.10.2.tgz";
+      sha1 = "024a5517295308857f14f91f1106fc3b555f446b";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."bn.js"."^2.0.0" =
+    self.by-version."bn.js"."2.2.0";
+  by-version."bn.js"."2.2.0" = self.buildNodePackage {
+    name = "bn.js-2.2.0";
+    version = "2.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bn.js/-/bn.js-2.2.0.tgz";
+      name = "bn.js-2.2.0.tgz";
+      sha1 = "12162bc2ae71fc40a5626c33438f3a875cd37625";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."boom"."0.4.x" =
+    self.by-version."boom"."0.4.2";
+  by-version."boom"."0.4.2" = self.buildNodePackage {
+    name = "boom-0.4.2";
+    version = "0.4.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/boom/-/boom-0.4.2.tgz";
+      name = "boom-0.4.2.tgz";
+      sha1 = "7a636e9ded4efcefb19cef4947a3c67dfaee911b";
+    };
+    deps = {
+      "hoek-0.9.1" = self.by-version."hoek"."0.9.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."boom"."2.x.x" =
+    self.by-version."boom"."2.10.1";
+  by-version."boom"."2.10.1" = self.buildNodePackage {
+    name = "boom-2.10.1";
+    version = "2.10.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/boom/-/boom-2.10.1.tgz";
+      name = "boom-2.10.1.tgz";
+      sha1 = "39c8918ceff5799f83f9492a848f625add0c766f";
+    };
+    deps = {
+      "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."buffer-equal-constant-time"."^1.0.1" =
+    self.by-version."buffer-equal-constant-time"."1.0.1";
+  by-version."buffer-equal-constant-time"."1.0.1" = self.buildNodePackage {
+    name = "buffer-equal-constant-time-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz";
+      name = "buffer-equal-constant-time-1.0.1.tgz";
+      sha1 = "f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."caller-id"."0.1.x" =
+    self.by-version."caller-id"."0.1.0";
+  by-version."caller-id"."0.1.0" = self.buildNodePackage {
+    name = "caller-id-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/caller-id/-/caller-id-0.1.0.tgz";
+      name = "caller-id-0.1.0.tgz";
+      sha1 = "59bdac0893d12c3871408279231f97458364f07b";
+    };
+    deps = {
+      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."camelcase"."^1.0.1" =
+    self.by-version."camelcase"."1.2.1";
+  by-version."camelcase"."1.2.1" = self.buildNodePackage {
+    name = "camelcase-1.2.1";
+    version = "1.2.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz";
+      name = "camelcase-1.2.1.tgz";
+      sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."camelcase-keys"."^1.0.0" =
+    self.by-version."camelcase-keys"."1.0.0";
+  by-version."camelcase-keys"."1.0.0" = self.buildNodePackage {
+    name = "camelcase-keys-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-1.0.0.tgz";
+      name = "camelcase-keys-1.0.0.tgz";
+      sha1 = "bd1a11bf9b31a1ce493493a930de1a0baf4ad7ec";
+    };
+    deps = {
+      "camelcase-1.2.1" = self.by-version."camelcase"."1.2.1";
+      "map-obj-1.0.1" = self.by-version."map-obj"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."caseless"."~0.10.0" =
+    self.by-version."caseless"."0.10.0";
+  by-version."caseless"."0.10.0" = self.buildNodePackage {
+    name = "caseless-0.10.0";
+    version = "0.10.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/caseless/-/caseless-0.10.0.tgz";
+      name = "caseless-0.10.0.tgz";
+      sha1 = "ed6b2719adcd1fd18f58dc081c0f1a5b43963909";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."caseless"."~0.11.0" =
+    self.by-version."caseless"."0.11.0";
+  by-version."caseless"."0.11.0" = self.buildNodePackage {
+    name = "caseless-0.11.0";
+    version = "0.11.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz";
+      name = "caseless-0.11.0.tgz";
+      sha1 = "715b96ea9841593cc33067923f5ec60ebda4f7d7";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."caseless"."~0.6.0" =
+    self.by-version."caseless"."0.6.0";
+  by-version."caseless"."0.6.0" = self.buildNodePackage {
+    name = "caseless-0.6.0";
+    version = "0.6.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz";
+      name = "caseless-0.6.0.tgz";
+      sha1 = "8167c1ab8397fb5bb95f96d28e5a81c50f247ac4";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."caseless"."~0.9.0" =
+    self.by-version."caseless"."0.9.0";
+  by-version."caseless"."0.9.0" = self.buildNodePackage {
+    name = "caseless-0.9.0";
+    version = "0.9.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz";
+      name = "caseless-0.9.0.tgz";
+      sha1 = "b7b65ce6bf1413886539cfd533f0b30effa9cf88";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."chalk"."^1.0.0" =
+    self.by-version."chalk"."1.1.1";
+  by-version."chalk"."1.1.1" = self.buildNodePackage {
+    name = "chalk-1.1.1";
+    version = "1.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz";
+      name = "chalk-1.1.1.tgz";
+      sha1 = "509afb67066e7499f7eb3535c77445772ae2d019";
+    };
+    deps = {
+      "ansi-styles-2.1.0" = self.by-version."ansi-styles"."2.1.0";
+      "escape-string-regexp-1.0.4" = self.by-version."escape-string-regexp"."1.0.4";
+      "has-ansi-2.0.0" = self.by-version."has-ansi"."2.0.0";
+      "strip-ansi-3.0.0" = self.by-version."strip-ansi"."3.0.0";
+      "supports-color-2.0.0" = self.by-version."supports-color"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."chalk"."^1.1.1" =
+    self.by-version."chalk"."1.1.1";
+  by-spec."colors"."0.x.x" =
+    self.by-version."colors"."0.6.2";
+  by-version."colors"."0.6.2" = self.buildNodePackage {
+    name = "colors-0.6.2";
+    version = "0.6.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/colors/-/colors-0.6.2.tgz";
+      name = "colors-0.6.2.tgz";
+      sha1 = "2423fe6678ac0c5dae8852e5d0e5be08c997abcc";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."combined-stream"."^1.0.5" =
+    self.by-version."combined-stream"."1.0.5";
+  by-version."combined-stream"."1.0.5" = self.buildNodePackage {
+    name = "combined-stream-1.0.5";
+    version = "1.0.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz";
+      name = "combined-stream-1.0.5.tgz";
+      sha1 = "938370a57b4a51dea2c77c15d5c5fdf895164009";
+    };
+    deps = {
+      "delayed-stream-1.0.0" = self.by-version."delayed-stream"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."combined-stream"."~0.0.4" =
+    self.by-version."combined-stream"."0.0.7";
+  by-version."combined-stream"."0.0.7" = self.buildNodePackage {
+    name = "combined-stream-0.0.7";
+    version = "0.0.7";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz";
+      name = "combined-stream-0.0.7.tgz";
+      sha1 = "0137e657baa5a7541c57ac37ac5fc07d73b4dc1f";
+    };
+    deps = {
+      "delayed-stream-0.0.5" = self.by-version."delayed-stream"."0.0.5";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."combined-stream"."~0.0.5" =
+    self.by-version."combined-stream"."0.0.7";
+  by-spec."combined-stream"."~1.0.1" =
+    self.by-version."combined-stream"."1.0.5";
+  by-spec."combined-stream"."~1.0.5" =
+    self.by-version."combined-stream"."1.0.5";
+  by-spec."commander"."1.0.4" =
+    self.by-version."commander"."1.0.4";
+  by-version."commander"."1.0.4" = self.buildNodePackage {
+    name = "commander-1.0.4";
+    version = "1.0.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/commander/-/commander-1.0.4.tgz";
+      name = "commander-1.0.4.tgz";
+      sha1 = "5edeb1aee23c4fb541a6b70d692abef19669a2d3";
+    };
+    deps = {
+      "keypress-0.1.0" = self.by-version."keypress"."0.1.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."commander"."^2.8.1" =
+    self.by-version."commander"."2.9.0";
+  by-version."commander"."2.9.0" = self.buildNodePackage {
+    name = "commander-2.9.0";
+    version = "2.9.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/commander/-/commander-2.9.0.tgz";
+      name = "commander-2.9.0.tgz";
+      sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+    };
+    deps = {
+      "graceful-readlink-1.0.1" = self.by-version."graceful-readlink"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."commander"."^2.9.0" =
+    self.by-version."commander"."2.9.0";
+  by-spec."commander"."~1.1.1" =
+    self.by-version."commander"."1.1.1";
+  by-version."commander"."1.1.1" = self.buildNodePackage {
+    name = "commander-1.1.1";
+    version = "1.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/commander/-/commander-1.1.1.tgz";
+      name = "commander-1.1.1.tgz";
+      sha1 = "50d1651868ae60eccff0a2d9f34595376bc6b041";
+    };
+    deps = {
+      "keypress-0.1.0" = self.by-version."keypress"."0.1.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."concat-stream"."~1.4.7" =
+    self.by-version."concat-stream"."1.4.10";
+  by-version."concat-stream"."1.4.10" = self.buildNodePackage {
+    name = "concat-stream-1.4.10";
+    version = "1.4.10";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/concat-stream/-/concat-stream-1.4.10.tgz";
+      name = "concat-stream-1.4.10.tgz";
+      sha1 = "acc3bbf5602cb8cc980c6ac840fa7d8603e3ef36";
+    };
+    deps = {
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "typedarray-0.0.6" = self.by-version."typedarray"."0.0.6";
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."core-util-is"."~1.0.0" =
+    self.by-version."core-util-is"."1.0.2";
+  by-version."core-util-is"."1.0.2" = self.buildNodePackage {
+    name = "core-util-is-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+      name = "core-util-is-1.0.2.tgz";
+      sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."cryptiles"."0.2.x" =
+    self.by-version."cryptiles"."0.2.2";
+  by-version."cryptiles"."0.2.2" = self.buildNodePackage {
+    name = "cryptiles-0.2.2";
+    version = "0.2.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz";
+      name = "cryptiles-0.2.2.tgz";
+      sha1 = "ed91ff1f17ad13d3748288594f8a48a0d26f325c";
+    };
+    deps = {
+      "boom-0.4.2" = self.by-version."boom"."0.4.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."cryptiles"."2.x.x" =
+    self.by-version."cryptiles"."2.0.5";
+  by-version."cryptiles"."2.0.5" = self.buildNodePackage {
+    name = "cryptiles-2.0.5";
+    version = "2.0.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz";
+      name = "cryptiles-2.0.5.tgz";
+      sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8";
+    };
+    deps = {
+      "boom-2.10.1" = self.by-version."boom"."2.10.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ctype"."0.5.2" =
+    self.by-version."ctype"."0.5.2";
+  by-version."ctype"."0.5.2" = self.buildNodePackage {
+    name = "ctype-0.5.2";
+    version = "0.5.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz";
+      name = "ctype-0.5.2.tgz";
+      sha1 = "fe8091d468a373a0b0c9ff8bbfb3425c00973a1d";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ctype"."0.5.3" =
+    self.by-version."ctype"."0.5.3";
+  by-version."ctype"."0.5.3" = self.buildNodePackage {
+    name = "ctype-0.5.3";
+    version = "0.5.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz";
+      name = "ctype-0.5.3.tgz";
+      sha1 = "82c18c2461f74114ef16c135224ad0b9144ca12f";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."cycle"."1.0.x" =
+    self.by-version."cycle"."1.0.3";
+  by-version."cycle"."1.0.3" = self.buildNodePackage {
+    name = "cycle-1.0.3";
+    version = "1.0.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
+      name = "cycle-1.0.3.tgz";
+      sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."dashdash".">=1.10.1 <2.0.0" =
+    self.by-version."dashdash"."1.12.1";
+  by-version."dashdash"."1.12.1" = self.buildNodePackage {
+    name = "dashdash-1.12.1";
+    version = "1.12.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/dashdash/-/dashdash-1.12.1.tgz";
+      name = "dashdash-1.12.1.tgz";
+      sha1 = "ed5fd0f9d2dc189e1fbf11e40f6a412167203b6a";
+    };
+    deps = {
+      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."date-utils"."*" =
+    self.by-version."date-utils"."1.2.17";
+  by-version."date-utils"."1.2.17" = self.buildNodePackage {
+    name = "date-utils-1.2.17";
+    version = "1.2.17";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/date-utils/-/date-utils-1.2.17.tgz";
+      name = "date-utils-1.2.17.tgz";
+      sha1 = "b469652478afc2647917ec1c7c00d9c371f2ad53";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."dateformat"."1.0.2-1.2.3" =
+    self.by-version."dateformat"."1.0.2-1.2.3";
+  by-version."dateformat"."1.0.2-1.2.3" = self.buildNodePackage {
+    name = "dateformat-1.0.2-1.2.3";
+    version = "1.0.2-1.2.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz";
+      name = "dateformat-1.0.2-1.2.3.tgz";
+      sha1 = "b0220c02de98617433b72851cf47de3df2cdbee9";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."debug"."~0.7.2" =
+    self.by-version."debug"."0.7.4";
+  by-version."debug"."0.7.4" = self.buildNodePackage {
+    name = "debug-0.7.4";
+    version = "0.7.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/debug/-/debug-0.7.4.tgz";
+      name = "debug-0.7.4.tgz";
+      sha1 = "06e1ea8082c2cb14e39806e22e2f6f757f92af39";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."delayed-stream"."0.0.5" =
+    self.by-version."delayed-stream"."0.0.5";
+  by-version."delayed-stream"."0.0.5" = self.buildNodePackage {
+    name = "delayed-stream-0.0.5";
+    version = "0.0.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz";
+      name = "delayed-stream-0.0.5.tgz";
+      sha1 = "d4b1f43a93e8296dfe02694f4680bc37a313c73f";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."delayed-stream"."~1.0.0" =
+    self.by-version."delayed-stream"."1.0.0";
+  by-version."delayed-stream"."1.0.0" = self.buildNodePackage {
+    name = "delayed-stream-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+      name = "delayed-stream-1.0.0.tgz";
+      sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."duplexer"."~0.1.1" =
+    self.by-version."duplexer"."0.1.1";
+  by-version."duplexer"."0.1.1" = self.buildNodePackage {
+    name = "duplexer-0.1.1";
+    version = "0.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz";
+      name = "duplexer-0.1.1.tgz";
+      sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."easy-table"."0.0.1" =
+    self.by-version."easy-table"."0.0.1";
+  by-version."easy-table"."0.0.1" = self.buildNodePackage {
+    name = "easy-table-0.0.1";
+    version = "0.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/easy-table/-/easy-table-0.0.1.tgz";
+      name = "easy-table-0.0.1.tgz";
+      sha1 = "dbd809177a1dd7afc06b4849d1ca7eff13e299eb";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ecc-jsbn".">=0.0.1 <1.0.0" =
+    self.by-version."ecc-jsbn"."0.1.1";
+  by-version."ecc-jsbn"."0.1.1" = self.buildNodePackage {
+    name = "ecc-jsbn-0.1.1";
+    version = "0.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz";
+      name = "ecc-jsbn-0.1.1.tgz";
+      sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505";
+    };
+    deps = {
+      "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ecdsa-sig-formatter"."^1.0.0" =
+    self.by-version."ecdsa-sig-formatter"."1.0.2";
+  by-version."ecdsa-sig-formatter"."1.0.2" = self.buildNodePackage {
+    name = "ecdsa-sig-formatter-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.2.tgz";
+      name = "ecdsa-sig-formatter-1.0.2.tgz";
+      sha1 = "2074b4bd06be5e7479c9f71e73358bc3deea4a9b";
+    };
+    deps = {
+      "asn1.js-2.2.1" = self.by-version."asn1.js"."2.2.1";
+      "base64-url-1.2.1" = self.by-version."base64-url"."1.2.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."envconf"."~0.0.4" =
+    self.by-version."envconf"."0.0.4";
+  by-version."envconf"."0.0.4" = self.buildNodePackage {
+    name = "envconf-0.0.4";
+    version = "0.0.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/envconf/-/envconf-0.0.4.tgz";
+      name = "envconf-0.0.4.tgz";
+      sha1 = "85675afba237c43f98de2d46adc0e532a4dcf48b";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."escape-string-regexp"."^1.0.2" =
+    self.by-version."escape-string-regexp"."1.0.4";
+  by-version."escape-string-regexp"."1.0.4" = self.buildNodePackage {
+    name = "escape-string-regexp-1.0.4";
+    version = "1.0.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.4.tgz";
+      name = "escape-string-regexp-1.0.4.tgz";
+      sha1 = "b85e679b46f72d03fbbe8a3bf7259d535c21b62f";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."event-stream"."3.1.5" =
+    self.by-version."event-stream"."3.1.5";
+  by-version."event-stream"."3.1.5" = self.buildNodePackage {
+    name = "event-stream-3.1.5";
+    version = "3.1.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/event-stream/-/event-stream-3.1.5.tgz";
+      name = "event-stream-3.1.5.tgz";
+      sha1 = "6cba5a3ae02a7e4967d65ad04ef12502a2fff66c";
+    };
+    deps = {
+      "through-2.3.8" = self.by-version."through"."2.3.8";
+      "duplexer-0.1.1" = self.by-version."duplexer"."0.1.1";
+      "from-0.1.3" = self.by-version."from"."0.1.3";
+      "map-stream-0.1.0" = self.by-version."map-stream"."0.1.0";
+      "pause-stream-0.0.11" = self.by-version."pause-stream"."0.0.11";
+      "split-0.2.10" = self.by-version."split"."0.2.10";
+      "stream-combiner-0.0.4" = self.by-version."stream-combiner"."0.0.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."extend"."~1.2.1" =
+    self.by-version."extend"."1.2.1";
+  by-version."extend"."1.2.1" = self.buildNodePackage {
+    name = "extend-1.2.1";
+    version = "1.2.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/extend/-/extend-1.2.1.tgz";
+      name = "extend-1.2.1.tgz";
+      sha1 = "a0f5fd6cfc83a5fe49ef698d60ec8a624dd4576c";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."extend"."~3.0.0" =
+    self.by-version."extend"."3.0.0";
+  by-version."extend"."3.0.0" = self.buildNodePackage {
+    name = "extend-3.0.0";
+    version = "3.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/extend/-/extend-3.0.0.tgz";
+      name = "extend-3.0.0.tgz";
+      sha1 = "5a474353b9f3353ddd8176dfd37b91c83a46f1d4";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."extsprintf"."1.0.2" =
+    self.by-version."extsprintf"."1.0.2";
+  by-version."extsprintf"."1.0.2" = self.buildNodePackage {
+    name = "extsprintf-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz";
+      name = "extsprintf-1.0.2.tgz";
+      sha1 = "e1080e0658e300b06294990cc70e1502235fd550";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."eyes"."0.1.x" =
+    self.by-version."eyes"."0.1.8";
+  by-version."eyes"."0.1.8" = self.buildNodePackage {
+    name = "eyes-0.1.8";
+    version = "0.1.8";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz";
+      name = "eyes-0.1.8.tgz";
+      sha1 = "62cf120234c683785d902348a800ef3e0cc20bc0";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."eyes"."0.x.x" =
+    self.by-version."eyes"."0.1.8";
+  by-spec."fibers"."^1.0.1" =
+    self.by-version."fibers"."1.0.8";
+  by-version."fibers"."1.0.8" = self.buildNodePackage {
+    name = "fibers-1.0.8";
+    version = "1.0.8";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/fibers/-/fibers-1.0.8.tgz";
+      name = "fibers-1.0.8.tgz";
+      sha1 = "cbffda427c4e588a6f8601c2a07d134b092077f2";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."foreachasync"."^3.0.0" =
+    self.by-version."foreachasync"."3.0.0";
+  by-version."foreachasync"."3.0.0" = self.buildNodePackage {
+    name = "foreachasync-3.0.0";
+    version = "3.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz";
+      name = "foreachasync-3.0.0.tgz";
+      sha1 = "5502987dc8714be3392097f32e0071c9dee07cf6";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."forever-agent"."~0.5.0" =
+    self.by-version."forever-agent"."0.5.2";
+  by-version."forever-agent"."0.5.2" = self.buildNodePackage {
+    name = "forever-agent-0.5.2";
+    version = "0.5.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz";
+      name = "forever-agent-0.5.2.tgz";
+      sha1 = "6d0e09c4921f94a27f63d3b49c5feff1ea4c5130";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."forever-agent"."~0.6.0" =
+    self.by-version."forever-agent"."0.6.1";
+  by-version."forever-agent"."0.6.1" = self.buildNodePackage {
+    name = "forever-agent-0.6.1";
+    version = "0.6.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+      name = "forever-agent-0.6.1.tgz";
+      sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."forever-agent"."~0.6.1" =
+    self.by-version."forever-agent"."0.6.1";
+  by-spec."form-data"."~0.1.0" =
+    self.by-version."form-data"."0.1.4";
+  by-version."form-data"."0.1.4" = self.buildNodePackage {
+    name = "form-data-0.1.4";
+    version = "0.1.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz";
+      name = "form-data-0.1.4.tgz";
+      sha1 = "91abd788aba9702b1aabfa8bc01031a2ac9e3b12";
+    };
+    deps = {
+      "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "async-0.9.2" = self.by-version."async"."0.9.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."form-data"."~0.2.0" =
+    self.by-version."form-data"."0.2.0";
+  by-version."form-data"."0.2.0" = self.buildNodePackage {
+    name = "form-data-0.2.0";
+    version = "0.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz";
+      name = "form-data-0.2.0.tgz";
+      sha1 = "26f8bc26da6440e299cbdcfb69035c4f77a6e466";
+    };
+    deps = {
+      "async-0.9.2" = self.by-version."async"."0.9.2";
+      "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7";
+      "mime-types-2.0.14" = self.by-version."mime-types"."2.0.14";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."form-data"."~1.0.0-rc3" =
+    self.by-version."form-data"."1.0.0-rc3";
+  by-version."form-data"."1.0.0-rc3" = self.buildNodePackage {
+    name = "form-data-1.0.0-rc3";
+    version = "1.0.0-rc3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz";
+      name = "form-data-1.0.0-rc3.tgz";
+      sha1 = "d35bc62e7fbc2937ae78f948aaa0d38d90607577";
+    };
+    deps = {
+      "async-1.5.2" = self.by-version."async"."1.5.2";
+      "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5";
+      "mime-types-2.1.9" = self.by-version."mime-types"."2.1.9";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."from"."~0" =
+    self.by-version."from"."0.1.3";
+  by-version."from"."0.1.3" = self.buildNodePackage {
+    name = "from-0.1.3";
+    version = "0.1.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/from/-/from-0.1.3.tgz";
+      name = "from-0.1.3.tgz";
+      sha1 = "ef63ac2062ac32acf7862e0d40b44b896f22f3bc";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."galaxy"."^0.1.11" =
+    self.by-version."galaxy"."0.1.12";
+  by-version."galaxy"."0.1.12" = self.buildNodePackage {
+    name = "galaxy-0.1.12";
+    version = "0.1.12";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/galaxy/-/galaxy-0.1.12.tgz";
+      name = "galaxy-0.1.12.tgz";
+      sha1 = "0c989774f2870c69378aa665648cdc60f343aa53";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."generate-function"."^2.0.0" =
+    self.by-version."generate-function"."2.0.0";
+  by-version."generate-function"."2.0.0" = self.buildNodePackage {
+    name = "generate-function-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz";
+      name = "generate-function-2.0.0.tgz";
+      sha1 = "6858fe7c0969b7d4e9093337647ac79f60dfbe74";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."generate-object-property"."^1.1.0" =
+    self.by-version."generate-object-property"."1.2.0";
+  by-version."generate-object-property"."1.2.0" = self.buildNodePackage {
+    name = "generate-object-property-1.2.0";
+    version = "1.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz";
+      name = "generate-object-property-1.2.0.tgz";
+      sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0";
+    };
+    deps = {
+      "is-property-1.0.2" = self.by-version."is-property"."1.0.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."get-stdin"."^4.0.1" =
+    self.by-version."get-stdin"."4.0.1";
+  by-version."get-stdin"."4.0.1" = self.buildNodePackage {
+    name = "get-stdin-4.0.1";
+    version = "4.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz";
+      name = "get-stdin-4.0.1.tgz";
+      sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."github"."0.1.6" =
+    self.by-version."github"."0.1.6";
+  by-version."github"."0.1.6" = self.buildNodePackage {
+    name = "github-0.1.6";
+    version = "0.1.6";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/github/-/github-0.1.6.tgz";
+      name = "github-0.1.6.tgz";
+      sha1 = "1344e694f8d20ef9b29bcbfd1ca5eb4f7a287922";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."graceful-readlink".">= 1.0.0" =
+    self.by-version."graceful-readlink"."1.0.1";
+  by-version."graceful-readlink"."1.0.1" = self.buildNodePackage {
+    name = "graceful-readlink-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+      name = "graceful-readlink-1.0.1.tgz";
+      sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."har-validator"."^1.6.1" =
+    self.by-version."har-validator"."1.8.0";
+  by-version."har-validator"."1.8.0" = self.buildNodePackage {
+    name = "har-validator-1.8.0";
+    version = "1.8.0";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz";
+      name = "har-validator-1.8.0.tgz";
+      sha1 = "d83842b0eb4c435960aeb108a067a3aa94c0eeb2";
+    };
+    deps = {
+      "bluebird-2.10.2" = self.by-version."bluebird"."2.10.2";
+      "chalk-1.1.1" = self.by-version."chalk"."1.1.1";
+      "commander-2.9.0" = self.by-version."commander"."2.9.0";
+      "is-my-json-valid-2.12.3" = self.by-version."is-my-json-valid"."2.12.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."har-validator"."~2.0.2" =
+    self.by-version."har-validator"."2.0.3";
+  by-version."har-validator"."2.0.3" = self.buildNodePackage {
+    name = "har-validator-2.0.3";
+    version = "2.0.3";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/har-validator/-/har-validator-2.0.3.tgz";
+      name = "har-validator-2.0.3.tgz";
+      sha1 = "5a9e12564a571cf0b81ef93c2157bd1617168883";
+    };
+    deps = {
+      "chalk-1.1.1" = self.by-version."chalk"."1.1.1";
+      "commander-2.9.0" = self.by-version."commander"."2.9.0";
+      "is-my-json-valid-2.12.3" = self.by-version."is-my-json-valid"."2.12.3";
+      "pinkie-promise-2.0.0" = self.by-version."pinkie-promise"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."has-ansi"."^2.0.0" =
+    self.by-version."has-ansi"."2.0.0";
+  by-version."has-ansi"."2.0.0" = self.buildNodePackage {
+    name = "has-ansi-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+      name = "has-ansi-2.0.0.tgz";
+      sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+    };
+    deps = {
+      "ansi-regex-2.0.0" = self.by-version."ansi-regex"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."hawk"."1.1.1" =
+    self.by-version."hawk"."1.1.1";
+  by-version."hawk"."1.1.1" = self.buildNodePackage {
+    name = "hawk-1.1.1";
+    version = "1.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz";
+      name = "hawk-1.1.1.tgz";
+      sha1 = "87cd491f9b46e4e2aeaca335416766885d2d1ed9";
+    };
+    deps = {
+      "hoek-0.9.1" = self.by-version."hoek"."0.9.1";
+      "boom-0.4.2" = self.by-version."boom"."0.4.2";
+      "cryptiles-0.2.2" = self.by-version."cryptiles"."0.2.2";
+      "sntp-0.2.4" = self.by-version."sntp"."0.2.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."hawk"."~2.3.0" =
+    self.by-version."hawk"."2.3.1";
+  by-version."hawk"."2.3.1" = self.buildNodePackage {
+    name = "hawk-2.3.1";
+    version = "2.3.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz";
+      name = "hawk-2.3.1.tgz";
+      sha1 = "1e731ce39447fa1d0f6d707f7bceebec0fd1ec1f";
+    };
+    deps = {
+      "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
+      "boom-2.10.1" = self.by-version."boom"."2.10.1";
+      "cryptiles-2.0.5" = self.by-version."cryptiles"."2.0.5";
+      "sntp-1.0.9" = self.by-version."sntp"."1.0.9";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."hawk"."~3.1.0" =
+    self.by-version."hawk"."3.1.2";
+  by-version."hawk"."3.1.2" = self.buildNodePackage {
+    name = "hawk-3.1.2";
+    version = "3.1.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/hawk/-/hawk-3.1.2.tgz";
+      name = "hawk-3.1.2.tgz";
+      sha1 = "90c90118886e21975d1ad4ae9b3e284ed19a2de8";
+    };
+    deps = {
+      "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
+      "boom-2.10.1" = self.by-version."boom"."2.10.1";
+      "cryptiles-2.0.5" = self.by-version."cryptiles"."2.0.5";
+      "sntp-1.0.9" = self.by-version."sntp"."1.0.9";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."hoek"."0.9.x" =
+    self.by-version."hoek"."0.9.1";
+  by-version."hoek"."0.9.1" = self.buildNodePackage {
+    name = "hoek-0.9.1";
+    version = "0.9.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz";
+      name = "hoek-0.9.1.tgz";
+      sha1 = "3d322462badf07716ea7eb85baf88079cddce505";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."hoek"."2.x.x" =
+    self.by-version."hoek"."2.16.3";
+  by-version."hoek"."2.16.3" = self.buildNodePackage {
+    name = "hoek-2.16.3";
+    version = "2.16.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz";
+      name = "hoek-2.16.3.tgz";
+      sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."http-signature"."~0.10.0" =
+    self.by-version."http-signature"."0.10.1";
+  by-version."http-signature"."0.10.1" = self.buildNodePackage {
+    name = "http-signature-0.10.1";
+    version = "0.10.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz";
+      name = "http-signature-0.10.1.tgz";
+      sha1 = "4fbdac132559aa8323121e540779c0a012b27e66";
+    };
+    deps = {
+      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
+      "asn1-0.1.11" = self.by-version."asn1"."0.1.11";
+      "ctype-0.5.3" = self.by-version."ctype"."0.5.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."http-signature"."~0.11.0" =
+    self.by-version."http-signature"."0.11.0";
+  by-version."http-signature"."0.11.0" = self.buildNodePackage {
+    name = "http-signature-0.11.0";
+    version = "0.11.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz";
+      name = "http-signature-0.11.0.tgz";
+      sha1 = "1796cf67a001ad5cd6849dca0991485f09089fe6";
+    };
+    deps = {
+      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
+      "asn1-0.1.11" = self.by-version."asn1"."0.1.11";
+      "ctype-0.5.3" = self.by-version."ctype"."0.5.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."http-signature"."~1.1.0" =
+    self.by-version."http-signature"."1.1.0";
+  by-version."http-signature"."1.1.0" = self.buildNodePackage {
+    name = "http-signature-1.1.0";
+    version = "1.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/http-signature/-/http-signature-1.1.0.tgz";
+      name = "http-signature-1.1.0.tgz";
+      sha1 = "5d2d7e9b6ef49980ad5b128d8e4ef09a31c90d95";
+    };
+    deps = {
+      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
+      "jsprim-1.2.2" = self.by-version."jsprim"."1.2.2";
+      "sshpk-1.7.2" = self.by-version."sshpk"."1.7.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."image-size"."^0.3.5" =
+    self.by-version."image-size"."0.3.5";
+  by-version."image-size"."0.3.5" = self.buildNodePackage {
+    name = "image-size-0.3.5";
+    version = "0.3.5";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/image-size/-/image-size-0.3.5.tgz";
+      name = "image-size-0.3.5.tgz";
+      sha1 = "83240eab2fb5b00b04aab8c74b0471e9cba7ad8c";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."indent-string"."^1.1.0" =
+    self.by-version."indent-string"."1.2.2";
+  by-version."indent-string"."1.2.2" = self.buildNodePackage {
+    name = "indent-string-1.2.2";
+    version = "1.2.2";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/indent-string/-/indent-string-1.2.2.tgz";
+      name = "indent-string-1.2.2.tgz";
+      sha1 = "db99bcc583eb6abbb1e48dcbb1999a986041cb6b";
+    };
+    deps = {
+      "get-stdin-4.0.1" = self.by-version."get-stdin"."4.0.1";
+      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
+      "repeating-1.1.3" = self.by-version."repeating"."1.1.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."inherits"."^2.0.1" =
+    self.by-version."inherits"."2.0.1";
+  by-version."inherits"."2.0.1" = self.buildNodePackage {
+    name = "inherits-2.0.1";
+    version = "2.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
+      name = "inherits-2.0.1.tgz";
+      sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."inherits"."~2.0.1" =
+    self.by-version."inherits"."2.0.1";
+  by-spec."is-finite"."^1.0.0" =
+    self.by-version."is-finite"."1.0.1";
+  by-version."is-finite"."1.0.1" = self.buildNodePackage {
+    name = "is-finite-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz";
+      name = "is-finite-1.0.1.tgz";
+      sha1 = "6438603eaebe2793948ff4a4262ec8db3d62597b";
+    };
+    deps = {
+      "number-is-nan-1.0.0" = self.by-version."number-is-nan"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."is-my-json-valid"."^2.12.0" =
+    self.by-version."is-my-json-valid"."2.12.3";
+  by-version."is-my-json-valid"."2.12.3" = self.buildNodePackage {
+    name = "is-my-json-valid-2.12.3";
+    version = "2.12.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz";
+      name = "is-my-json-valid-2.12.3.tgz";
+      sha1 = "5a39d1d76b2dbb83140bbd157b1d5ee4bdc85ad6";
+    };
+    deps = {
+      "generate-function-2.0.0" = self.by-version."generate-function"."2.0.0";
+      "generate-object-property-1.2.0" = self.by-version."generate-object-property"."1.2.0";
+      "jsonpointer-2.0.0" = self.by-version."jsonpointer"."2.0.0";
+      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."is-my-json-valid"."^2.12.3" =
+    self.by-version."is-my-json-valid"."2.12.3";
+  by-spec."is-property"."^1.0.0" =
+    self.by-version."is-property"."1.0.2";
+  by-version."is-property"."1.0.2" = self.buildNodePackage {
+    name = "is-property-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz";
+      name = "is-property-1.0.2.tgz";
+      sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."is-typedarray"."~1.0.0" =
+    self.by-version."is-typedarray"."1.0.0";
+  by-version."is-typedarray"."1.0.0" = self.buildNodePackage {
+    name = "is-typedarray-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+      name = "is-typedarray-1.0.0.tgz";
+      sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."isarray"."0.0.1" =
+    self.by-version."isarray"."0.0.1";
+  by-version."isarray"."0.0.1" = self.buildNodePackage {
+    name = "isarray-0.0.1";
+    version = "0.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+      name = "isarray-0.0.1.tgz";
+      sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."isstream"."~0.1.1" =
+    self.by-version."isstream"."0.1.2";
+  by-version."isstream"."0.1.2" = self.buildNodePackage {
+    name = "isstream-0.1.2";
+    version = "0.1.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+      name = "isstream-0.1.2.tgz";
+      sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."isstream"."~0.1.2" =
+    self.by-version."isstream"."0.1.2";
+  by-spec."jodid25519".">=1.0.0 <2.0.0" =
+    self.by-version."jodid25519"."1.0.2";
+  by-version."jodid25519"."1.0.2" = self.buildNodePackage {
+    name = "jodid25519-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz";
+      name = "jodid25519-1.0.2.tgz";
+      sha1 = "06d4912255093419477d425633606e0e90782967";
+    };
+    deps = {
+      "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."js2xmlparser"."1.0.0" =
+    self.by-version."js2xmlparser"."1.0.0";
+  by-version."js2xmlparser"."1.0.0" = self.buildNodePackage {
+    name = "js2xmlparser-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/js2xmlparser/-/js2xmlparser-1.0.0.tgz";
+      name = "js2xmlparser-1.0.0.tgz";
+      sha1 = "5a170f2e8d6476ce45405e04823242513782fe30";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jsbn".">=0.1.0 <0.2.0" =
+    self.by-version."jsbn"."0.1.0";
+  by-version."jsbn"."0.1.0" = self.buildNodePackage {
+    name = "jsbn-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz";
+      name = "jsbn-0.1.0.tgz";
+      sha1 = "650987da0dd74f4ebf5a11377a2aa2d273e97dfd";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jsbn"."~0.1.0" =
+    self.by-version."jsbn"."0.1.0";
+  by-spec."json-schema"."0.2.2" =
+    self.by-version."json-schema"."0.2.2";
+  by-version."json-schema"."0.2.2" = self.buildNodePackage {
+    name = "json-schema-0.2.2";
+    version = "0.2.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz";
+      name = "json-schema-0.2.2.tgz";
+      sha1 = "50354f19f603917c695f70b85afa77c3b0f23506";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."json-stringify-safe"."~5.0.0" =
+    self.by-version."json-stringify-safe"."5.0.1";
+  by-version."json-stringify-safe"."5.0.1" = self.buildNodePackage {
+    name = "json-stringify-safe-5.0.1";
+    version = "5.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+      name = "json-stringify-safe-5.0.1.tgz";
+      sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."json-stringify-safe"."~5.0.1" =
+    self.by-version."json-stringify-safe"."5.0.1";
+  by-spec."jsonpointer"."2.0.0" =
+    self.by-version."jsonpointer"."2.0.0";
+  by-version."jsonpointer"."2.0.0" = self.buildNodePackage {
+    name = "jsonpointer-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz";
+      name = "jsonpointer-2.0.0.tgz";
+      sha1 = "3af1dd20fe85463910d469a385e33017d2a030d9";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jsprim"."^1.2.2" =
+    self.by-version."jsprim"."1.2.2";
+  by-version."jsprim"."1.2.2" = self.buildNodePackage {
+    name = "jsprim-1.2.2";
+    version = "1.2.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz";
+      name = "jsprim-1.2.2.tgz";
+      sha1 = "f20c906ac92abd58e3b79ac8bc70a48832512da1";
+    };
+    deps = {
+      "extsprintf-1.0.2" = self.by-version."extsprintf"."1.0.2";
+      "json-schema-0.2.2" = self.by-version."json-schema"."0.2.2";
+      "verror-1.3.6" = self.by-version."verror"."1.3.6";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jsrsasign"."4.8.2 " =
+    self.by-version."jsrsasign"."4.8.2";
+  by-version."jsrsasign"."4.8.2" = self.buildNodePackage {
+    name = "jsrsasign-4.8.2";
+    version = "4.8.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jsrsasign/-/jsrsasign-4.8.2.tgz";
+      name = "jsrsasign-4.8.2.tgz";
+      sha1 = "bd0a7040d426d7598d6c742ec8f875d0e88644a9";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jszip"."^2.5.0" =
+    self.by-version."jszip"."2.5.0";
+  by-version."jszip"."2.5.0" = self.buildNodePackage {
+    name = "jszip-2.5.0";
+    version = "2.5.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jszip/-/jszip-2.5.0.tgz";
+      name = "jszip-2.5.0.tgz";
+      sha1 = "7444fd8551ddf3e5da7198fea0c91bc8308cc274";
+    };
+    deps = {
+      "pako-0.2.8" = self.by-version."pako"."0.2.8";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jwa"."^1.1.0" =
+    self.by-version."jwa"."1.1.1";
+  by-version."jwa"."1.1.1" = self.buildNodePackage {
+    name = "jwa-1.1.1";
+    version = "1.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jwa/-/jwa-1.1.1.tgz";
+      name = "jwa-1.1.1.tgz";
+      sha1 = "b83c05279f0707f55ca5387b7b3f23da9f80195f";
+    };
+    deps = {
+      "base64url-0.0.6" = self.by-version."base64url"."0.0.6";
+      "buffer-equal-constant-time-1.0.1" = self.by-version."buffer-equal-constant-time"."1.0.1";
+      "ecdsa-sig-formatter-1.0.2" = self.by-version."ecdsa-sig-formatter"."1.0.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jws"."3.x.x" =
+    self.by-version."jws"."3.1.0";
+  by-version."jws"."3.1.0" = self.buildNodePackage {
+    name = "jws-3.1.0";
+    version = "3.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jws/-/jws-3.1.0.tgz";
+      name = "jws-3.1.0.tgz";
+      sha1 = "885a89127d24119a2a93f234ddd492337a7c85a0";
+    };
+    deps = {
+      "base64url-1.0.5" = self.by-version."base64url"."1.0.5";
+      "jwa-1.1.1" = self.by-version."jwa"."1.1.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."keypress"."0.1.x" =
+    self.by-version."keypress"."0.1.0";
+  by-version."keypress"."0.1.0" = self.buildNodePackage {
+    name = "keypress-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz";
+      name = "keypress-0.1.0.tgz";
+      sha1 = "4a3188d4291b66b4f65edb99f806aa9ae293592a";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."kuduscript"."1.0.6" =
+    self.by-version."kuduscript"."1.0.6";
+  by-version."kuduscript"."1.0.6" = self.buildNodePackage {
+    name = "kuduscript-1.0.6";
+    version = "1.0.6";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/kuduscript/-/kuduscript-1.0.6.tgz";
+      name = "kuduscript-1.0.6.tgz";
+      sha1 = "466628f1d4f68d972a28939012e055156bdbcf16";
+    };
+    deps = {
+      "commander-1.1.1" = self.by-version."commander"."1.1.1";
+      "streamline-0.4.11" = self.by-version."streamline"."0.4.11";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."map-obj"."^1.0.0" =
+    self.by-version."map-obj"."1.0.1";
+  by-version."map-obj"."1.0.1" = self.buildNodePackage {
+    name = "map-obj-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz";
+      name = "map-obj-1.0.1.tgz";
+      sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."map-stream"."~0.1.0" =
+    self.by-version."map-stream"."0.1.0";
+  by-version."map-stream"."0.1.0" = self.buildNodePackage {
+    name = "map-stream-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz";
+      name = "map-stream-0.1.0.tgz";
+      sha1 = "e56aa94c4c8055a16404a0674b78f215f7c8e194";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."meow"."~2.0.0" =
+    self.by-version."meow"."2.0.0";
+  by-version."meow"."2.0.0" = self.buildNodePackage {
+    name = "meow-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/meow/-/meow-2.0.0.tgz";
+      name = "meow-2.0.0.tgz";
+      sha1 = "8f530a8ecf5d40d3f4b4df93c3472900fba2a8f1";
+    };
+    deps = {
+      "camelcase-keys-1.0.0" = self.by-version."camelcase-keys"."1.0.0";
+      "indent-string-1.2.2" = self.by-version."indent-string"."1.2.2";
+      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
+      "object-assign-1.0.0" = self.by-version."object-assign"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."mime"."~1.2.11" =
+    self.by-version."mime"."1.2.11";
+  by-version."mime"."1.2.11" = self.buildNodePackage {
+    name = "mime-1.2.11";
+    version = "1.2.11";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mime/-/mime-1.2.11.tgz";
+      name = "mime-1.2.11.tgz";
+      sha1 = "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."mime"."~1.2.4" =
+    self.by-version."mime"."1.2.11";
+  by-spec."mime-db"."~1.12.0" =
+    self.by-version."mime-db"."1.12.0";
+  by-version."mime-db"."1.12.0" = self.buildNodePackage {
+    name = "mime-db-1.12.0";
+    version = "1.12.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz";
+      name = "mime-db-1.12.0.tgz";
+      sha1 = "3d0c63180f458eb10d325aaa37d7c58ae312e9d7";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."mime-db"."~1.21.0" =
+    self.by-version."mime-db"."1.21.0";
+  by-version."mime-db"."1.21.0" = self.buildNodePackage {
+    name = "mime-db-1.21.0";
+    version = "1.21.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz";
+      name = "mime-db-1.21.0.tgz";
+      sha1 = "9b5239e3353cf6eb015a00d890261027c36d4bac";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."mime-types"."^2.1.3" =
+    self.by-version."mime-types"."2.1.9";
+  by-version."mime-types"."2.1.9" = self.buildNodePackage {
+    name = "mime-types-2.1.9";
+    version = "2.1.9";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz";
+      name = "mime-types-2.1.9.tgz";
+      sha1 = "dfb396764b5fdf75be34b1f4104bc3687fb635f8";
+    };
+    deps = {
+      "mime-db-1.21.0" = self.by-version."mime-db"."1.21.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."mime-types"."~1.0.1" =
+    self.by-version."mime-types"."1.0.2";
+  by-version."mime-types"."1.0.2" = self.buildNodePackage {
+    name = "mime-types-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz";
+      name = "mime-types-1.0.2.tgz";
+      sha1 = "995ae1392ab8affcbfcb2641dd054e943c0d5dce";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."mime-types"."~2.0.1" =
+    self.by-version."mime-types"."2.0.14";
+  by-version."mime-types"."2.0.14" = self.buildNodePackage {
+    name = "mime-types-2.0.14";
+    version = "2.0.14";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz";
+      name = "mime-types-2.0.14.tgz";
+      sha1 = "310e159db23e077f8bb22b748dabfa4957140aa6";
+    };
+    deps = {
+      "mime-db-1.12.0" = self.by-version."mime-db"."1.12.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."mime-types"."~2.0.3" =
+    self.by-version."mime-types"."2.0.14";
+  by-spec."mime-types"."~2.1.7" =
+    self.by-version."mime-types"."2.1.9";
+  by-spec."minimalistic-assert"."^1.0.0" =
+    self.by-version."minimalistic-assert"."1.0.0";
+  by-version."minimalistic-assert"."1.0.0" = self.buildNodePackage {
+    name = "minimalistic-assert-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz";
+      name = "minimalistic-assert-1.0.0.tgz";
+      sha1 = "702be2dda6b37f4836bcb3f5db56641b64a1d3d3";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."minimist"."^1.1.0" =
+    self.by-version."minimist"."1.2.0";
+  by-version."minimist"."1.2.0" = self.buildNodePackage {
+    name = "minimist-1.2.0";
+    version = "1.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz";
+      name = "minimist-1.2.0.tgz";
+      sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."moment"."2.6.0" =
+    self.by-version."moment"."2.6.0";
+  by-version."moment"."2.6.0" = self.buildNodePackage {
+    name = "moment-2.6.0";
+    version = "2.6.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/moment/-/moment-2.6.0.tgz";
+      name = "moment-2.6.0.tgz";
+      sha1 = "0765b72b841dd213fa91914c0f6765122719f061";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."moment"."^2.6.0" =
+    self.by-version."moment"."2.11.1";
+  by-version."moment"."2.11.1" = self.buildNodePackage {
+    name = "moment-2.11.1";
+    version = "2.11.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/moment/-/moment-2.11.1.tgz";
+      name = "moment-2.11.1.tgz";
+      sha1 = "bf4026413640d1b802467cf353607f8464d6af47";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ms-rest"."1.2.0" =
+    self.by-version."ms-rest"."1.2.0";
+  by-version."ms-rest"."1.2.0" = self.buildNodePackage {
+    name = "ms-rest-1.2.0";
+    version = "1.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ms-rest/-/ms-rest-1.2.0.tgz";
+      name = "ms-rest-1.2.0.tgz";
+      sha1 = "269ad1efe28c3ab92bd3db46c6eefd8740946380";
+    };
+    deps = {
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+      "tunnel-0.0.3" = self.by-version."tunnel"."0.0.3";
+      "request-2.52.0" = self.by-version."request"."2.52.0";
+      "validator-3.1.0" = self.by-version."validator"."3.1.0";
+      "duplexer-0.1.1" = self.by-version."duplexer"."0.1.1";
+      "through-2.3.8" = self.by-version."through"."2.3.8";
+      "tough-cookie-2.2.1" = self.by-version."tough-cookie"."2.2.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ms-rest-azure"."1.2.0" =
+    self.by-version."ms-rest-azure"."1.2.0";
+  by-version."ms-rest-azure"."1.2.0" = self.buildNodePackage {
+    name = "ms-rest-azure-1.2.0";
+    version = "1.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ms-rest-azure/-/ms-rest-azure-1.2.0.tgz";
+      name = "ms-rest-azure-1.2.0.tgz";
+      sha1 = "5a9e137963d5c7d28f188aa93e5df2e8bc44ca9b";
+    };
+    deps = {
+      "async-0.2.7" = self.by-version."async"."0.2.7";
+      "uuid-2.0.1" = self.by-version."uuid"."2.0.1";
+      "adal-node-0.1.16" = self.by-version."adal-node"."0.1.16";
+      "ms-rest-1.2.0" = self.by-version."ms-rest"."1.2.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."node-forge"."0.6.23" =
+    self.by-version."node-forge"."0.6.23";
+  by-version."node-forge"."0.6.23" = self.buildNodePackage {
+    name = "node-forge-0.6.23";
+    version = "0.6.23";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/node-forge/-/node-forge-0.6.23.tgz";
+      name = "node-forge-0.6.23.tgz";
+      sha1 = "f03cf65ebd5d4d9dd2f7becb57ceaf78ed94a2bf";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."node-uuid"."1.2.0" =
+    self.by-version."node-uuid"."1.2.0";
+  by-version."node-uuid"."1.2.0" = self.buildNodePackage {
+    name = "node-uuid-1.2.0";
+    version = "1.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/node-uuid/-/node-uuid-1.2.0.tgz";
+      name = "node-uuid-1.2.0.tgz";
+      sha1 = "81a9fe32934719852499b58b2523d2cd5fdfd65b";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."node-uuid"."1.4.1" =
+    self.by-version."node-uuid"."1.4.1";
+  by-version."node-uuid"."1.4.1" = self.buildNodePackage {
+    name = "node-uuid-1.4.1";
+    version = "1.4.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz";
+      name = "node-uuid-1.4.1.tgz";
+      sha1 = "39aef510e5889a3dca9c895b506c73aae1bac048";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."node-uuid".">= 1.3.3" =
+    self.by-version."node-uuid"."1.4.7";
+  by-version."node-uuid"."1.4.7" = self.buildNodePackage {
+    name = "node-uuid-1.4.7";
+    version = "1.4.7";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz";
+      name = "node-uuid-1.4.7.tgz";
+      sha1 = "6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."node-uuid"."^1.4.1" =
+    self.by-version."node-uuid"."1.4.7";
+  by-spec."node-uuid"."~1.4.0" =
+    self.by-version."node-uuid"."1.4.7";
+  by-spec."node-uuid"."~1.4.7" =
+    self.by-version."node-uuid"."1.4.7";
+  by-spec."number-is-nan"."1.0.0" =
+    self.by-version."number-is-nan"."1.0.0";
+  by-version."number-is-nan"."1.0.0" = self.buildNodePackage {
+    name = "number-is-nan-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz";
+      name = "number-is-nan-1.0.0.tgz";
+      sha1 = "c020f529c5282adfdd233d91d4b181c3d686dc4b";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."number-is-nan"."^1.0.0" =
+    self.by-version."number-is-nan"."1.0.0";
+  by-spec."oauth-sign"."~0.4.0" =
+    self.by-version."oauth-sign"."0.4.0";
+  by-version."oauth-sign"."0.4.0" = self.buildNodePackage {
+    name = "oauth-sign-0.4.0";
+    version = "0.4.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz";
+      name = "oauth-sign-0.4.0.tgz";
+      sha1 = "f22956f31ea7151a821e5f2fb32c113cad8b9f69";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."oauth-sign"."~0.6.0" =
+    self.by-version."oauth-sign"."0.6.0";
+  by-version."oauth-sign"."0.6.0" = self.buildNodePackage {
+    name = "oauth-sign-0.6.0";
+    version = "0.6.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz";
+      name = "oauth-sign-0.6.0.tgz";
+      sha1 = "7dbeae44f6ca454e1f168451d630746735813ce3";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."oauth-sign"."~0.8.0" =
+    self.by-version."oauth-sign"."0.8.0";
+  by-version."oauth-sign"."0.8.0" = self.buildNodePackage {
+    name = "oauth-sign-0.8.0";
+    version = "0.8.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz";
+      name = "oauth-sign-0.8.0.tgz";
+      sha1 = "938fdc875765ba527137d8aec9d178e24debc553";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."object-assign"."^1.0.0" =
+    self.by-version."object-assign"."1.0.0";
+  by-version."object-assign"."1.0.0" = self.buildNodePackage {
+    name = "object-assign-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/object-assign/-/object-assign-1.0.0.tgz";
+      name = "object-assign-1.0.0.tgz";
+      sha1 = "e65dc8766d3b47b4b8307465c8311da030b070a6";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."omelette"."0.1.0" =
+    self.by-version."omelette"."0.1.0";
+  by-version."omelette"."0.1.0" = self.buildNodePackage {
+    name = "omelette-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/omelette/-/omelette-0.1.0.tgz";
+      name = "omelette-0.1.0.tgz";
+      sha1 = "31cc7eb472a513c07483d24d3e1bf164cb0d23b8";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."openssl-wrapper"."0.2.1" =
+    self.by-version."openssl-wrapper"."0.2.1";
+  by-version."openssl-wrapper"."0.2.1" = self.buildNodePackage {
+    name = "openssl-wrapper-0.2.1";
+    version = "0.2.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/openssl-wrapper/-/openssl-wrapper-0.2.1.tgz";
+      name = "openssl-wrapper-0.2.1.tgz";
+      sha1 = "ff2d6552c83bb14437edc0371784704c75289473";
+    };
+    deps = {
+      "debug-0.7.4" = self.by-version."debug"."0.7.4";
+      "q-0.9.7" = self.by-version."q"."0.9.7";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."pako"."~0.2.5" =
+    self.by-version."pako"."0.2.8";
+  by-version."pako"."0.2.8" = self.buildNodePackage {
+    name = "pako-0.2.8";
+    version = "0.2.8";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pako/-/pako-0.2.8.tgz";
+      name = "pako-0.2.8.tgz";
+      sha1 = "15ad772915362913f20de4a8a164b4aacc6165d6";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."pause-stream"."0.0.11" =
+    self.by-version."pause-stream"."0.0.11";
+  by-version."pause-stream"."0.0.11" = self.buildNodePackage {
+    name = "pause-stream-0.0.11";
+    version = "0.0.11";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz";
+      name = "pause-stream-0.0.11.tgz";
+      sha1 = "fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445";
+    };
+    deps = {
+      "through-2.3.8" = self.by-version."through"."2.3.8";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."pinkie"."^2.0.0" =
+    self.by-version."pinkie"."2.0.1";
+  by-version."pinkie"."2.0.1" = self.buildNodePackage {
+    name = "pinkie-2.0.1";
+    version = "2.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pinkie/-/pinkie-2.0.1.tgz";
+      name = "pinkie-2.0.1.tgz";
+      sha1 = "4236c86fc29f261c2045bbe81f78cbb2a5e8306c";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."pinkie-promise"."^2.0.0" =
+    self.by-version."pinkie-promise"."2.0.0";
+  by-version."pinkie-promise"."2.0.0" = self.buildNodePackage {
+    name = "pinkie-promise-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz";
+      name = "pinkie-promise-2.0.0.tgz";
+      sha1 = "4c83538de1f6e660c29e0a13446844f7a7e88259";
+    };
+    deps = {
+      "pinkie-2.0.1" = self.by-version."pinkie"."2.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."pkginfo"."0.2.x" =
+    self.by-version."pkginfo"."0.2.3";
+  by-version."pkginfo"."0.2.3" = self.buildNodePackage {
+    name = "pkginfo-0.2.3";
+    version = "0.2.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz";
+      name = "pkginfo-0.2.3.tgz";
+      sha1 = "7239c42a5ef6c30b8f328439d9b9ff71042490f8";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."process-nextick-args"."~1.0.6" =
+    self.by-version."process-nextick-args"."1.0.6";
+  by-version."process-nextick-args"."1.0.6" = self.buildNodePackage {
+    name = "process-nextick-args-1.0.6";
+    version = "1.0.6";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz";
+      name = "process-nextick-args-1.0.6.tgz";
+      sha1 = "0f96b001cea90b12592ce566edb97ec11e69bd05";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."q"."~0.9.3" =
+    self.by-version."q"."0.9.7";
+  by-version."q"."0.9.7" = self.buildNodePackage {
+    name = "q-0.9.7";
+    version = "0.9.7";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/q/-/q-0.9.7.tgz";
+      name = "q-0.9.7.tgz";
+      sha1 = "4de2e6cb3b29088c9e4cbc03bf9d42fb96ce2f75";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."qs"."~1.2.0" =
+    self.by-version."qs"."1.2.2";
+  by-version."qs"."1.2.2" = self.buildNodePackage {
+    name = "qs-1.2.2";
+    version = "1.2.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/qs/-/qs-1.2.2.tgz";
+      name = "qs-1.2.2.tgz";
+      sha1 = "19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."qs"."~2.3.1" =
+    self.by-version."qs"."2.3.3";
+  by-version."qs"."2.3.3" = self.buildNodePackage {
+    name = "qs-2.3.3";
+    version = "2.3.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/qs/-/qs-2.3.3.tgz";
+      name = "qs-2.3.3.tgz";
+      sha1 = "e9e85adbe75da0bbe4c8e0476a086290f863b404";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."qs"."~3.1.0" =
+    self.by-version."qs"."3.1.0";
+  by-version."qs"."3.1.0" = self.buildNodePackage {
+    name = "qs-3.1.0";
+    version = "3.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/qs/-/qs-3.1.0.tgz";
+      name = "qs-3.1.0.tgz";
+      sha1 = "d0e9ae745233a12dc43fb4f3055bba446261153c";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."qs"."~5.2.0" =
+    self.by-version."qs"."5.2.0";
+  by-version."qs"."5.2.0" = self.buildNodePackage {
+    name = "qs-5.2.0";
+    version = "5.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/qs/-/qs-5.2.0.tgz";
+      name = "qs-5.2.0.tgz";
+      sha1 = "a9f31142af468cb72b25b30136ba2456834916be";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."readable-stream"."~1.0.0" =
+    self.by-version."readable-stream"."1.0.33";
+  by-version."readable-stream"."1.0.33" = self.buildNodePackage {
+    name = "readable-stream-1.0.33";
+    version = "1.0.33";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz";
+      name = "readable-stream-1.0.33.tgz";
+      sha1 = "3a360dd66c1b1d7fd4705389860eda1d0f61126c";
+    };
+    deps = {
+      "core-util-is-1.0.2" = self.by-version."core-util-is"."1.0.2";
+      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
+      "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."readable-stream"."~1.0.26" =
+    self.by-version."readable-stream"."1.0.33";
+  by-spec."readable-stream"."~1.1.9" =
+    self.by-version."readable-stream"."1.1.13";
+  by-version."readable-stream"."1.1.13" = self.buildNodePackage {
+    name = "readable-stream-1.1.13";
+    version = "1.1.13";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz";
+      name = "readable-stream-1.1.13.tgz";
+      sha1 = "f6eef764f514c89e2b9e23146a75ba106756d23e";
+    };
+    deps = {
+      "core-util-is-1.0.2" = self.by-version."core-util-is"."1.0.2";
+      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
+      "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."readable-stream"."~2.0.0" =
+    self.by-version."readable-stream"."2.0.5";
+  by-version."readable-stream"."2.0.5" = self.buildNodePackage {
+    name = "readable-stream-2.0.5";
+    version = "2.0.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz";
+      name = "readable-stream-2.0.5.tgz";
+      sha1 = "a2426f8dcd4551c77a33f96edf2886a23c829669";
+    };
+    deps = {
+      "core-util-is-1.0.2" = self.by-version."core-util-is"."1.0.2";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
+      "process-nextick-args-1.0.6" = self.by-version."process-nextick-args"."1.0.6";
+      "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31";
+      "util-deprecate-1.0.2" = self.by-version."util-deprecate"."1.0.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."repeating"."^1.1.0" =
+    self.by-version."repeating"."1.1.3";
+  by-version."repeating"."1.1.3" = self.buildNodePackage {
+    name = "repeating-1.1.3";
+    version = "1.1.3";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz";
+      name = "repeating-1.1.3.tgz";
+      sha1 = "3d4114218877537494f97f77f9785fab810fa4ac";
+    };
+    deps = {
+      "is-finite-1.0.1" = self.by-version."is-finite"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."request"."2.45.0" =
+    self.by-version."request"."2.45.0";
+  by-version."request"."2.45.0" = self.buildNodePackage {
+    name = "request-2.45.0";
+    version = "2.45.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/request/-/request-2.45.0.tgz";
+      name = "request-2.45.0.tgz";
+      sha1 = "29d713a0a07f17fb2e7b61815d2010681718e93c";
+    };
+    deps = {
+      "bl-0.9.4" = self.by-version."bl"."0.9.4";
+      "caseless-0.6.0" = self.by-version."caseless"."0.6.0";
+      "forever-agent-0.5.2" = self.by-version."forever-agent"."0.5.2";
+      "qs-1.2.2" = self.by-version."qs"."1.2.2";
+      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
+      "mime-types-1.0.2" = self.by-version."mime-types"."1.0.2";
+      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
+      "tunnel-agent-0.4.2" = self.by-version."tunnel-agent"."0.4.2";
+      "form-data-0.1.4" = self.by-version."form-data"."0.1.4";
+    };
+    optionalDependencies = {
+      "tough-cookie-2.2.1" = self.by-version."tough-cookie"."2.2.1";
+      "http-signature-0.10.1" = self.by-version."http-signature"."0.10.1";
+      "oauth-sign-0.4.0" = self.by-version."oauth-sign"."0.4.0";
+      "hawk-1.1.1" = self.by-version."hawk"."1.1.1";
+      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
+      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."request"."2.52.0" =
+    self.by-version."request"."2.52.0";
+  by-version."request"."2.52.0" = self.buildNodePackage {
+    name = "request-2.52.0";
+    version = "2.52.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/request/-/request-2.52.0.tgz";
+      name = "request-2.52.0.tgz";
+      sha1 = "02d82a8adc04dc94a3a79f09fc850ade9aa21e74";
+    };
+    deps = {
+      "bl-0.9.4" = self.by-version."bl"."0.9.4";
+      "caseless-0.9.0" = self.by-version."caseless"."0.9.0";
+      "forever-agent-0.5.2" = self.by-version."forever-agent"."0.5.2";
+      "form-data-0.2.0" = self.by-version."form-data"."0.2.0";
+      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
+      "mime-types-2.0.14" = self.by-version."mime-types"."2.0.14";
+      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
+      "qs-2.3.3" = self.by-version."qs"."2.3.3";
+      "tunnel-agent-0.4.2" = self.by-version."tunnel-agent"."0.4.2";
+      "tough-cookie-2.2.1" = self.by-version."tough-cookie"."2.2.1";
+      "http-signature-0.10.1" = self.by-version."http-signature"."0.10.1";
+      "oauth-sign-0.6.0" = self.by-version."oauth-sign"."0.6.0";
+      "hawk-2.3.1" = self.by-version."hawk"."2.3.1";
+      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
+      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
+      "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7";
+      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."request"."2.9.x" =
+    self.by-version."request"."2.9.203";
+  by-version."request"."2.9.203" = self.buildNodePackage {
+    name = "request-2.9.203";
+    version = "2.9.203";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/request/-/request-2.9.203.tgz";
+      name = "request-2.9.203.tgz";
+      sha1 = "6c1711a5407fb94a114219563e44145bcbf4723a";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."request".">= 2.52.0" =
+    self.by-version."request"."2.67.0";
+  by-version."request"."2.67.0" = self.buildNodePackage {
+    name = "request-2.67.0";
+    version = "2.67.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/request/-/request-2.67.0.tgz";
+      name = "request-2.67.0.tgz";
+      sha1 = "8af74780e2bf11ea0ae9aa965c11f11afd272742";
+    };
+    deps = {
+      "bl-1.0.0" = self.by-version."bl"."1.0.0";
+      "caseless-0.11.0" = self.by-version."caseless"."0.11.0";
+      "extend-3.0.0" = self.by-version."extend"."3.0.0";
+      "forever-agent-0.6.1" = self.by-version."forever-agent"."0.6.1";
+      "form-data-1.0.0-rc3" = self.by-version."form-data"."1.0.0-rc3";
+      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
+      "mime-types-2.1.9" = self.by-version."mime-types"."2.1.9";
+      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
+      "qs-5.2.0" = self.by-version."qs"."5.2.0";
+      "tunnel-agent-0.4.2" = self.by-version."tunnel-agent"."0.4.2";
+      "tough-cookie-2.2.1" = self.by-version."tough-cookie"."2.2.1";
+      "http-signature-1.1.0" = self.by-version."http-signature"."1.1.0";
+      "oauth-sign-0.8.0" = self.by-version."oauth-sign"."0.8.0";
+      "hawk-3.1.2" = self.by-version."hawk"."3.1.2";
+      "aws-sign2-0.6.0" = self.by-version."aws-sign2"."0.6.0";
+      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
+      "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5";
+      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
+      "is-typedarray-1.0.0" = self.by-version."is-typedarray"."1.0.0";
+      "har-validator-2.0.3" = self.by-version."har-validator"."2.0.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."request".">= 2.9.203" =
+    self.by-version."request"."2.67.0";
+  by-spec."request"."~2.57.0" =
+    self.by-version."request"."2.57.0";
+  by-version."request"."2.57.0" = self.buildNodePackage {
+    name = "request-2.57.0";
+    version = "2.57.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/request/-/request-2.57.0.tgz";
+      name = "request-2.57.0.tgz";
+      sha1 = "d445105a42d009b9d724289633b449a6d723d989";
+    };
+    deps = {
+      "bl-0.9.4" = self.by-version."bl"."0.9.4";
+      "caseless-0.10.0" = self.by-version."caseless"."0.10.0";
+      "forever-agent-0.6.1" = self.by-version."forever-agent"."0.6.1";
+      "form-data-0.2.0" = self.by-version."form-data"."0.2.0";
+      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
+      "mime-types-2.0.14" = self.by-version."mime-types"."2.0.14";
+      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
+      "qs-3.1.0" = self.by-version."qs"."3.1.0";
+      "tunnel-agent-0.4.2" = self.by-version."tunnel-agent"."0.4.2";
+      "tough-cookie-2.2.1" = self.by-version."tough-cookie"."2.2.1";
+      "http-signature-0.11.0" = self.by-version."http-signature"."0.11.0";
+      "oauth-sign-0.8.0" = self.by-version."oauth-sign"."0.8.0";
+      "hawk-2.3.1" = self.by-version."hawk"."2.3.1";
+      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
+      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
+      "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5";
+      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
+      "har-validator-1.8.0" = self.by-version."har-validator"."1.8.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."sax"."0.5.2" =
+    self.by-version."sax"."0.5.2";
+  by-version."sax"."0.5.2" = self.buildNodePackage {
+    name = "sax-0.5.2";
+    version = "0.5.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/sax/-/sax-0.5.2.tgz";
+      name = "sax-0.5.2.tgz";
+      sha1 = "735ffaa39a1cff8ffb9598f0223abdb03a9fb2ea";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."sax".">=0.1.1" =
+    self.by-version."sax"."1.1.4";
+  by-version."sax"."1.1.4" = self.buildNodePackage {
+    name = "sax-1.1.4";
+    version = "1.1.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/sax/-/sax-1.1.4.tgz";
+      name = "sax-1.1.4.tgz";
+      sha1 = "74b6d33c9ae1e001510f179a91168588f1aedaa9";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."sntp"."0.2.x" =
+    self.by-version."sntp"."0.2.4";
+  by-version."sntp"."0.2.4" = self.buildNodePackage {
+    name = "sntp-0.2.4";
+    version = "0.2.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz";
+      name = "sntp-0.2.4.tgz";
+      sha1 = "fb885f18b0f3aad189f824862536bceeec750900";
+    };
+    deps = {
+      "hoek-0.9.1" = self.by-version."hoek"."0.9.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."sntp"."1.x.x" =
+    self.by-version."sntp"."1.0.9";
+  by-version."sntp"."1.0.9" = self.buildNodePackage {
+    name = "sntp-1.0.9";
+    version = "1.0.9";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz";
+      name = "sntp-1.0.9.tgz";
+      sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198";
+    };
+    deps = {
+      "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."source-map"."~0.1.43" =
+    self.by-version."source-map"."0.1.43";
+  by-version."source-map"."0.1.43" = self.buildNodePackage {
+    name = "source-map-0.1.43";
+    version = "0.1.43";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz";
+      name = "source-map-0.1.43.tgz";
+      sha1 = "c24bc146ca517c1471f5dacbe2571b2b7f9e3346";
+    };
+    deps = {
+      "amdefine-1.0.0" = self.by-version."amdefine"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."split"."0.2" =
+    self.by-version."split"."0.2.10";
+  by-version."split"."0.2.10" = self.buildNodePackage {
+    name = "split-0.2.10";
+    version = "0.2.10";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/split/-/split-0.2.10.tgz";
+      name = "split-0.2.10.tgz";
+      sha1 = "67097c601d697ce1368f418f06cd201cf0521a57";
+    };
+    deps = {
+      "through-2.3.8" = self.by-version."through"."2.3.8";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ssh-key-to-pem"."0.11.0" =
+    self.by-version."ssh-key-to-pem"."0.11.0";
+  by-version."ssh-key-to-pem"."0.11.0" = self.buildNodePackage {
+    name = "ssh-key-to-pem-0.11.0";
+    version = "0.11.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ssh-key-to-pem/-/ssh-key-to-pem-0.11.0.tgz";
+      name = "ssh-key-to-pem-0.11.0.tgz";
+      sha1 = "512675a28f08f1e581779e1989ab1e13effb49e4";
+    };
+    deps = {
+      "asn1-0.1.11" = self.by-version."asn1"."0.1.11";
+      "ctype-0.5.2" = self.by-version."ctype"."0.5.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."sshpk"."^1.7.0" =
+    self.by-version."sshpk"."1.7.2";
+  by-version."sshpk"."1.7.2" = self.buildNodePackage {
+    name = "sshpk-1.7.2";
+    version = "1.7.2";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/sshpk/-/sshpk-1.7.2.tgz";
+      name = "sshpk-1.7.2.tgz";
+      sha1 = "e5eb43d0662bd201037327edb8b8f64656aca842";
+    };
+    deps = {
+      "asn1-0.2.3" = self.by-version."asn1"."0.2.3";
+      "assert-plus-0.2.0" = self.by-version."assert-plus"."0.2.0";
+      "dashdash-1.12.1" = self.by-version."dashdash"."1.12.1";
+    };
+    optionalDependencies = {
+      "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0";
+      "tweetnacl-0.13.3" = self.by-version."tweetnacl"."0.13.3";
+      "jodid25519-1.0.2" = self.by-version."jodid25519"."1.0.2";
+      "ecc-jsbn-0.1.1" = self.by-version."ecc-jsbn"."0.1.1";
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."stack-trace"."0.0.x" =
+    self.by-version."stack-trace"."0.0.9";
+  by-version."stack-trace"."0.0.9" = self.buildNodePackage {
+    name = "stack-trace-0.0.9";
+    version = "0.0.9";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz";
+      name = "stack-trace-0.0.9.tgz";
+      sha1 = "a8f6eaeca90674c333e7c43953f275b451510695";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."stack-trace"."~0.0.7" =
+    self.by-version."stack-trace"."0.0.9";
+  by-spec."stream-combiner"."~0.0.4" =
+    self.by-version."stream-combiner"."0.0.4";
+  by-version."stream-combiner"."0.0.4" = self.buildNodePackage {
+    name = "stream-combiner-0.0.4";
+    version = "0.0.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz";
+      name = "stream-combiner-0.0.4.tgz";
+      sha1 = "4d5e433c185261dde623ca3f44c586bcf5c4ad14";
+    };
+    deps = {
+      "duplexer-0.1.1" = self.by-version."duplexer"."0.1.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."streamline"."0.10.17" =
+    self.by-version."streamline"."0.10.17";
+  by-version."streamline"."0.10.17" = self.buildNodePackage {
+    name = "streamline-0.10.17";
+    version = "0.10.17";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/streamline/-/streamline-0.10.17.tgz";
+      name = "streamline-0.10.17.tgz";
+      sha1 = "fa2170da74194dbd0b54f756523f0d0d370426af";
+    };
+    deps = {
+      "source-map-0.1.43" = self.by-version."source-map"."0.1.43";
+    };
+    optionalDependencies = {
+      "fibers-1.0.8" = self.by-version."fibers"."1.0.8";
+      "galaxy-0.1.12" = self.by-version."galaxy"."0.1.12";
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."streamline"."~0.4.10" =
+    self.by-version."streamline"."0.4.11";
+  by-version."streamline"."0.4.11" = self.buildNodePackage {
+    name = "streamline-0.4.11";
+    version = "0.4.11";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/streamline/-/streamline-0.4.11.tgz";
+      name = "streamline-0.4.11.tgz";
+      sha1 = "0e3c4f24a3f052b231b12d5049085a0a099be782";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."streamline-streams"."0.1.5" =
+    self.by-version."streamline-streams"."0.1.5";
+  by-version."streamline-streams"."0.1.5" = self.buildNodePackage {
+    name = "streamline-streams-0.1.5";
+    version = "0.1.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/streamline-streams/-/streamline-streams-0.1.5.tgz";
+      name = "streamline-streams-0.1.5.tgz";
+      sha1 = "5b0ff80cf543f603cc3438ed178ca2aec7899b54";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."string_decoder"."~0.10.x" =
+    self.by-version."string_decoder"."0.10.31";
+  by-version."string_decoder"."0.10.31" = self.buildNodePackage {
+    name = "string_decoder-0.10.31";
+    version = "0.10.31";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+      name = "string_decoder-0.10.31.tgz";
+      sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."stringstream"."~0.0.4" =
+    self.by-version."stringstream"."0.0.5";
+  by-version."stringstream"."0.0.5" = self.buildNodePackage {
+    name = "stringstream-0.0.5";
+    version = "0.0.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz";
+      name = "stringstream-0.0.5.tgz";
+      sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."strip-ansi"."^3.0.0" =
+    self.by-version."strip-ansi"."3.0.0";
+  by-version."strip-ansi"."3.0.0" = self.buildNodePackage {
+    name = "strip-ansi-3.0.0";
+    version = "3.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz";
+      name = "strip-ansi-3.0.0.tgz";
+      sha1 = "7510b665567ca914ccb5d7e072763ac968be3724";
+    };
+    deps = {
+      "ansi-regex-2.0.0" = self.by-version."ansi-regex"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."supports-color"."^2.0.0" =
+    self.by-version."supports-color"."2.0.0";
+  by-version."supports-color"."2.0.0" = self.buildNodePackage {
+    name = "supports-color-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
+      name = "supports-color-2.0.0.tgz";
+      sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."swagger-schema-official"."2.0.0-a33091a" =
+    self.by-version."swagger-schema-official"."2.0.0-a33091a";
+  by-version."swagger-schema-official"."2.0.0-a33091a" = self.buildNodePackage {
+    name = "swagger-schema-official-2.0.0-a33091a";
+    version = "2.0.0-a33091a";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/swagger-schema-official/-/swagger-schema-official-2.0.0-a33091a.tgz";
+      name = "swagger-schema-official-2.0.0-a33091a.tgz";
+      sha1 = "54cd2c83aac5b2203572fcd70e6e092d17b763fd";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."through"."2" =
+    self.by-version."through"."2.3.8";
+  by-version."through"."2.3.8" = self.buildNodePackage {
+    name = "through-2.3.8";
+    version = "2.3.8";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/through/-/through-2.3.8.tgz";
+      name = "through-2.3.8.tgz";
+      sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."through"."2.3.4" =
+    self.by-version."through"."2.3.4";
+  by-version."through"."2.3.4" = self.buildNodePackage {
+    name = "through-2.3.4";
+    version = "2.3.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/through/-/through-2.3.4.tgz";
+      name = "through-2.3.4.tgz";
+      sha1 = "495e40e8d8a8eaebc7c275ea88c2b8fc14c56455";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."through"."~2.3" =
+    self.by-version."through"."2.3.8";
+  by-spec."through"."~2.3.1" =
+    self.by-version."through"."2.3.8";
+  by-spec."through"."~2.3.4" =
+    self.by-version."through"."2.3.8";
+  by-spec."tmp"."0.0.25" =
+    self.by-version."tmp"."0.0.25";
+  by-version."tmp"."0.0.25" = self.buildNodePackage {
+    name = "tmp-0.0.25";
+    version = "0.0.25";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tmp/-/tmp-0.0.25.tgz";
+      name = "tmp-0.0.25.tgz";
+      sha1 = "b29629768c55f38df0bff33f6dfde052443da27d";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."tough-cookie"."*" =
+    self.by-version."tough-cookie"."2.2.1";
+  by-version."tough-cookie"."2.2.1" = self.buildNodePackage {
+    name = "tough-cookie-2.2.1";
+    version = "2.2.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz";
+      name = "tough-cookie-2.2.1.tgz";
+      sha1 = "3b0516b799e70e8164436a1446e7e5877fda118e";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."tough-cookie".">=0.12.0" =
+    self.by-version."tough-cookie"."2.2.1";
+  by-spec."tough-cookie"."~2.2.0" =
+    self.by-version."tough-cookie"."2.2.1";
+  by-spec."tunnel"."0.0.2" =
+    self.by-version."tunnel"."0.0.2";
+  by-version."tunnel"."0.0.2" = self.buildNodePackage {
+    name = "tunnel-0.0.2";
+    version = "0.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tunnel/-/tunnel-0.0.2.tgz";
+      name = "tunnel-0.0.2.tgz";
+      sha1 = "f23bcd8b7a7b8a864261b2084f66f93193396334";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."tunnel"."~0.0.2" =
+    self.by-version."tunnel"."0.0.3";
+  by-version."tunnel"."0.0.3" = self.buildNodePackage {
+    name = "tunnel-0.0.3";
+    version = "0.0.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tunnel/-/tunnel-0.0.3.tgz";
+      name = "tunnel-0.0.3.tgz";
+      sha1 = "e8f988115ca7be9d076c7a1fae4788be708f0cf1";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."tunnel-agent"."~0.4.0" =
+    self.by-version."tunnel-agent"."0.4.2";
+  by-version."tunnel-agent"."0.4.2" = self.buildNodePackage {
+    name = "tunnel-agent-0.4.2";
+    version = "0.4.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz";
+      name = "tunnel-agent-0.4.2.tgz";
+      sha1 = "1104e3f36ac87125c287270067d582d18133bfee";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."tunnel-agent"."~0.4.1" =
+    self.by-version."tunnel-agent"."0.4.2";
+  by-spec."tv4"."^1.1.9" =
+    self.by-version."tv4"."1.2.7";
+  by-version."tv4"."1.2.7" = self.buildNodePackage {
+    name = "tv4-1.2.7";
+    version = "1.2.7";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tv4/-/tv4-1.2.7.tgz";
+      name = "tv4-1.2.7.tgz";
+      sha1 = "bd29389afc73ade49ae5f48142b5d544bf68d120";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."tweetnacl".">=0.13.0 <1.0.0" =
+    self.by-version."tweetnacl"."0.13.3";
+  by-version."tweetnacl"."0.13.3" = self.buildNodePackage {
+    name = "tweetnacl-0.13.3";
+    version = "0.13.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz";
+      name = "tweetnacl-0.13.3.tgz";
+      sha1 = "d628b56f3bcc3d5ae74ba9d4c1a704def5ab4b56";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."typedarray"."~0.0.5" =
+    self.by-version."typedarray"."0.0.6";
+  by-version."typedarray"."0.0.6" = self.buildNodePackage {
+    name = "typedarray-0.0.6";
+    version = "0.0.6";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
+      name = "typedarray-0.0.6.tgz";
+      sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."underscore"."1.4.x" =
+    self.by-version."underscore"."1.4.4";
+  by-version."underscore"."1.4.4" = self.buildNodePackage {
+    name = "underscore-1.4.4";
+    version = "1.4.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz";
+      name = "underscore-1.4.4.tgz";
+      sha1 = "61a6a32010622afa07963bf325203cf12239d604";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."underscore".">= 1.3.1" =
+    self.by-version."underscore"."1.8.3";
+  by-version."underscore"."1.8.3" = self.buildNodePackage {
+    name = "underscore-1.8.3";
+    version = "1.8.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz";
+      name = "underscore-1.8.3.tgz";
+      sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."underscore"."~1.4.4" =
+    self.by-version."underscore"."1.4.4";
+  by-spec."util-deprecate"."~1.0.1" =
+    self.by-version."util-deprecate"."1.0.2";
+  by-version."util-deprecate"."1.0.2" = self.buildNodePackage {
+    name = "util-deprecate-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+      name = "util-deprecate-1.0.2.tgz";
+      sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."uuid"."2.0.1" =
+    self.by-version."uuid"."2.0.1";
+  by-version."uuid"."2.0.1" = self.buildNodePackage {
+    name = "uuid-2.0.1";
+    version = "2.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz";
+      name = "uuid-2.0.1.tgz";
+      sha1 = "c2a30dedb3e535d72ccf82e343941a50ba8533ac";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."validator"."~3.1.0" =
+    self.by-version."validator"."3.1.0";
+  by-version."validator"."3.1.0" = self.buildNodePackage {
+    name = "validator-3.1.0";
+    version = "3.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/validator/-/validator-3.1.0.tgz";
+      name = "validator-3.1.0.tgz";
+      sha1 = "2ea1ff7e92254d69367f385f015299e5ead8755b";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."validator"."~3.22.2" =
+    self.by-version."validator"."3.22.2";
+  by-version."validator"."3.22.2" = self.buildNodePackage {
+    name = "validator-3.22.2";
+    version = "3.22.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/validator/-/validator-3.22.2.tgz";
+      name = "validator-3.22.2.tgz";
+      sha1 = "6f297ae67f7f82acc76d0afdb49f18d9a09c18c0";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."verror"."1.3.6" =
+    self.by-version."verror"."1.3.6";
+  by-version."verror"."1.3.6" = self.buildNodePackage {
+    name = "verror-1.3.6";
+    version = "1.3.6";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/verror/-/verror-1.3.6.tgz";
+      name = "verror-1.3.6.tgz";
+      sha1 = "cff5df12946d297d2baaefaa2689e25be01c005c";
+    };
+    deps = {
+      "extsprintf-1.0.2" = self.by-version."extsprintf"."1.0.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."walk"."^2.3.9" =
+    self.by-version."walk"."2.3.9";
+  by-version."walk"."2.3.9" = self.buildNodePackage {
+    name = "walk-2.3.9";
+    version = "2.3.9";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/walk/-/walk-2.3.9.tgz";
+      name = "walk-2.3.9.tgz";
+      sha1 = "31b4db6678f2ae01c39ea9fb8725a9031e558a7b";
+    };
+    deps = {
+      "foreachasync-3.0.0" = self.by-version."foreachasync"."3.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."winston"."0.6.x" =
+    self.by-version."winston"."0.6.2";
+  by-version."winston"."0.6.2" = self.buildNodePackage {
+    name = "winston-0.6.2";
+    version = "0.6.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/winston/-/winston-0.6.2.tgz";
+      name = "winston-0.6.2.tgz";
+      sha1 = "4144fe2586cdc19a612bf8c035590132c9064bd2";
+    };
+    deps = {
+      "async-0.1.22" = self.by-version."async"."0.1.22";
+      "colors-0.6.2" = self.by-version."colors"."0.6.2";
+      "cycle-1.0.3" = self.by-version."cycle"."1.0.3";
+      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
+      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
+      "request-2.9.203" = self.by-version."request"."2.9.203";
+      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."wordwrap"."0.0.2" =
+    self.by-version."wordwrap"."0.0.2";
+  by-version."wordwrap"."0.0.2" = self.buildNodePackage {
+    name = "wordwrap-0.0.2";
+    version = "0.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
+      name = "wordwrap-0.0.2.tgz";
+      sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."xml2js"."0.1.x" =
+    self.by-version."xml2js"."0.1.14";
+  by-version."xml2js"."0.1.14" = self.buildNodePackage {
+    name = "xml2js-0.1.14";
+    version = "0.1.14";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/xml2js/-/xml2js-0.1.14.tgz";
+      name = "xml2js-0.1.14.tgz";
+      sha1 = "5274e67f5a64c5f92974cd85139e0332adc6b90c";
+    };
+    deps = {
+      "sax-1.1.4" = self.by-version."sax"."1.1.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."xml2js"."0.2.7" =
+    self.by-version."xml2js"."0.2.7";
+  by-version."xml2js"."0.2.7" = self.buildNodePackage {
+    name = "xml2js-0.2.7";
+    version = "0.2.7";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/xml2js/-/xml2js-0.2.7.tgz";
+      name = "xml2js-0.2.7.tgz";
+      sha1 = "1838518bb01741cae0878bab4915e494c32306af";
+    };
+    deps = {
+      "sax-0.5.2" = self.by-version."sax"."0.5.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."xmlbuilder"."0.4.3" =
+    self.by-version."xmlbuilder"."0.4.3";
+  by-version."xmlbuilder"."0.4.3" = self.buildNodePackage {
+    name = "xmlbuilder-0.4.3";
+    version = "0.4.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-0.4.3.tgz";
+      name = "xmlbuilder-0.4.3.tgz";
+      sha1 = "c4614ba74e0ad196e609c9272cd9e1ddb28a8a58";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."xmlbuilder"."0.4.x" =
+    self.by-version."xmlbuilder"."0.4.3";
+  by-spec."xmldom".">= 0.1.x" =
+    self.by-version."xmldom"."0.1.20";
+  by-version."xmldom"."0.1.20" = self.buildNodePackage {
+    name = "xmldom-0.1.20";
+    version = "0.1.20";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/xmldom/-/xmldom-0.1.20.tgz";
+      name = "xmldom-0.1.20.tgz";
+      sha1 = "a70b6d9035a8b16f89727d4f0dddeba0f4077892";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."xpath.js"."~1.0.5" =
+    self.by-version."xpath.js"."1.0.6";
+  by-version."xpath.js"."1.0.6" = self.buildNodePackage {
+    name = "xpath.js-1.0.6";
+    version = "1.0.6";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/xpath.js/-/xpath.js-1.0.6.tgz";
+      name = "xpath.js-1.0.6.tgz";
+      sha1 = "fe4b81c1b152ebd8e1395265fedc5b00fca29b90";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."xtend"."^4.0.0" =
+    self.by-version."xtend"."4.0.1";
+  by-version."xtend"."4.0.1" = self.buildNodePackage {
+    name = "xtend-4.0.1";
+    version = "4.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz";
+      name = "xtend-4.0.1.tgz";
+      sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+}