Back out 6133c00430fc, 94e9ab59900e, 6f6115262c4b (bug 661908) for buildsymbols bustage
authorPhil Ringnalda <philringnalda@gmail.com>
Mon, 21 May 2012 14:31:34 -0700
changeset 98582 a27219d06c499b53f4dcccabad3dd59e1b2871c0
parent 98581 925c8302f34a85ce1064406289e93dbbad7c4888
child 98583 1738e189377f892bc60da69b0317a355b58c4b1e
push idunknown
push userunknown
push dateunknown
bugs661908
milestone15.0a1
backs out6133c00430fcfb9bb6e87cc4252d056bdac5be92
Back out 6133c00430fc, 94e9ab59900e, 6f6115262c4b (bug 661908) for buildsymbols bustage
allmakefiles.sh
build/virtualenv/Makefile.in
configure.in
other-licenses/virtualenv/AUTHORS.txt
other-licenses/virtualenv/LICENSE.txt
other-licenses/virtualenv/MANIFEST.in
other-licenses/virtualenv/PKG-INFO
other-licenses/virtualenv/docs/_build/_sources/index.txt
other-licenses/virtualenv/docs/_build/_sources/license.txt
other-licenses/virtualenv/docs/_build/_sources/news.txt
other-licenses/virtualenv/docs/index.txt
other-licenses/virtualenv/docs/license.txt
other-licenses/virtualenv/docs/news.txt
other-licenses/virtualenv/setup.py
other-licenses/virtualenv/virtualenv.egg-info/PKG-INFO
other-licenses/virtualenv/virtualenv.egg-info/SOURCES.txt
other-licenses/virtualenv/virtualenv.egg-info/dependency_links.txt
other-licenses/virtualenv/virtualenv.egg-info/entry_points.txt
other-licenses/virtualenv/virtualenv.egg-info/not-zip-safe
other-licenses/virtualenv/virtualenv.egg-info/top_level.txt
other-licenses/virtualenv/virtualenv.py
other-licenses/virtualenv/virtualenv_embedded/activate.bat
other-licenses/virtualenv/virtualenv_embedded/activate.csh
other-licenses/virtualenv/virtualenv_embedded/activate.fish
other-licenses/virtualenv/virtualenv_embedded/activate.ps1
other-licenses/virtualenv/virtualenv_embedded/activate.sh
other-licenses/virtualenv/virtualenv_embedded/activate_this.py
other-licenses/virtualenv/virtualenv_embedded/deactivate.bat
other-licenses/virtualenv/virtualenv_embedded/distribute_setup.py
other-licenses/virtualenv/virtualenv_embedded/distutils-init.py
other-licenses/virtualenv/virtualenv_embedded/distutils.cfg
other-licenses/virtualenv/virtualenv_embedded/ez_setup.py
other-licenses/virtualenv/virtualenv_embedded/site.py
other-licenses/virtualenv/virtualenv_support/distribute-0.6.24.tar.gz
other-licenses/virtualenv/virtualenv_support/distribute-0.6.8.tar.gz
other-licenses/virtualenv/virtualenv_support/pip-0.7.1.tar.gz
other-licenses/virtualenv/virtualenv_support/pip-1.1.tar.gz
other-licenses/virtualenv/virtualenv_support/setuptools-0.6c11-py2.7.egg
--- a/allmakefiles.sh
+++ b/allmakefiles.sh
@@ -25,17 +25,16 @@ fi
 
 # Common makefiles used by everyone
 add_makefiles "
 Makefile
 build/Makefile
 build/pgo/Makefile
 build/pgo/blueprint/Makefile
 build/pgo/js-input/Makefile
-build/virtualenv/Makefile
 config/Makefile
 config/autoconf.mk
 config/nspr/Makefile
 config/doxygen.cfg
 config/expandlibs_config.py
 mfbt/Makefile
 probes/Makefile
 extensions/Makefile
deleted file mode 100644
--- a/build/virtualenv/Makefile.in
+++ /dev/null
@@ -1,34 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this file,
-# You can obtain one at http://mozilla.org/MPL/2.0/.
-
-DEPTH		= ../..
-topsrcdir	= @top_srcdir@
-srcdir		= @srcdir@
-VPATH		= @srcdir@
-
-include $(DEPTH)/config/autoconf.mk
-
-# Paths here are topsrcdir-relative, and
-# must be in dependency-order.
-setuptools_packages := \
-  other-licenses/simplejson-2.1.1 \
-  testing/mozbase/manifestdestiny \
-  testing/mozbase/mozinfo \
-  testing/mozbase/mozinstall \
-  testing/mozbase/mozlog \
-  testing/mozbase/mozprocess \
-  testing/mozbase/mozprofile \
-  testing/mozbase/mozrunner \
-  $(NULL)
-
-
-define install_setuptools_package
-cd $(topsrcdir)/$(1)/; $(PYTHON) setup.py develop
-
-endef
-
-default::
-	$(foreach package,$(setuptools_packages),$(call install_setuptools_package,$(package)))
-
-include $(topsrcdir)/config/rules.mk
--- a/configure.in
+++ b/configure.in
@@ -7908,19 +7908,20 @@ else
     changequote(,)
     CL_INCLUDES_PREFIX=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/^\([^:]*:[^:]*:\).*stdio.h$/\1/p'`
     changequote([,])
     if test -z "$CL_INCLUDES_PREFIX"; then
         AC_MSG_ERROR([Cannot find cl -showIncludes prefix.])
     fi
     AC_SUBST(CL_INCLUDES_PREFIX)
     rm -f dummy-hello.c
+    _topsrcdirwin=`cd \`dirname $0\`; pwd -W`
     dnl cl.py provides dependency generation for MSVC
-    CC_WRAPPER='$(PYTHON) -O $(topsrcdir)/build/cl.py'
-    CXX_WRAPPER='$(PYTHON) -O $(topsrcdir)/build/cl.py'
+    CC_WRAPPER="$PYTHON -O $_topsrcdirwin/build/cl.py"
+    CXX_WRAPPER="$PYTHON -O $_topsrcdirwin/build/cl.py"
     COMPILER_DEPEND=1
   fi
 fi
 fi # MOZ_AUTO_DEPS
 MDDEPDIR='.deps'
 AC_SUBST(MOZ_AUTO_DEPS)
 AC_SUBST(COMPILER_DEPEND)
 AC_SUBST(MDDEPDIR)
@@ -8552,16 +8553,17 @@ if test "$MOZ_TELEMETRY_REPORTING"; then
     AC_DEFINE(MOZ_TELEMETRY_REPORTING)
 fi
 
 dnl win32 options
 AC_SUBST(MOZ_MAPINFO)
 AC_SUBST(MOZ_BROWSE_INFO)
 AC_SUBST(MOZ_TOOLS_DIR)
 AC_SUBST(WIN32_REDIST_DIR)
+AC_SUBST(PYTHON)
 AC_SUBST(MAKENSISU)
 
 dnl Echo the CFLAGS to remove extra whitespace.
 CFLAGS=`echo \
 	$_WARNINGS_CFLAGS \
 	$CFLAGS`
 
 CXXFLAGS=`echo \
@@ -8933,32 +8935,16 @@ if test "$?" != 0; then
   AC_MSG_ERROR([Error outputting confdefs.h])
 fi
 AC_OUTPUT_MAKE_DEFS()
 MOZ_DEFINES=$DEFS
 AC_SUBST(MOZ_DEFINES)
 rm -f confdefs.h
 mv confdefs.h.save confdefs.h
 
-dnl Create a virtualenv where we can install local Python packages
-AC_MSG_RESULT([Creating Python virtualenv])
-rm -rf _virtualenv
-mkdir _virtualenv
-$PYTHON $_topsrcdir/other-licenses/virtualenv/virtualenv.py ./_virtualenv
-case "$host_os" in
-mingw*)
-    PYTHON=`pwd`/_virtualenv/Scripts/python.exe
-    ;;
-*)
-    PYTHON=`pwd`/_virtualenv/bin/python
-    ;;
-esac
-
-AC_SUBST(PYTHON)
-
 dnl Load the list of Makefiles to generate.
 dnl   To add new Makefiles, edit allmakefiles.sh.
 dnl   allmakefiles.sh sets the variable, MAKEFILES.
 . ${srcdir}/allmakefiles.sh
 dnl
 dnl Run a perl script to quickly create the makefiles.
 dnl If it succeeds, it outputs a shell command to set CONFIG_FILES
 dnl   for the files it cannot handle correctly. This way, config.status
@@ -8972,20 +8958,16 @@ echo $MAKEFILES | ${PERL} $srcdir/build/
 rm conftest.sh
 
 echo $MAKEFILES > unallmakefiles
 
 mv -f config/autoconf.mk config/autoconf.mk.orig 2> /dev/null
 
 AC_OUTPUT($MAKEFILES)
 
-# Populate the virtualenv
-AC_MSG_RESULT([Populating Python virtualenv])
-$MAKE -C build/virtualenv || exit 1
-
 # Generate a JSON config file for unittest harnesses etc to read
 # build configuration details from in a standardized way.
 OS_TARGET=${OS_TARGET} TARGET_CPU=${TARGET_CPU} MOZ_DEBUG=${MOZ_DEBUG} \
 MOZ_WIDGET_TOOLKIT=${MOZ_WIDGET_TOOLKIT} UNIVERSAL_BINARY=${UNIVERSAL_BINARY} \
   $PYTHON ${_topsrcdir}/config/writemozinfo.py ./mozinfo.json.tmp
 if cmp -s ./mozinfo.json.tmp ./mozinfo.json; then
   rm ./mozinfo.json.tmp
 else
deleted file mode 100644
--- a/other-licenses/virtualenv/AUTHORS.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-Author
-------
-
-Ian Bicking
-
-Maintainers
------------
-
-Brian Rosner
-Carl Meyer
-Jannis Leidel
-
-Contributors
-------------
-
-Alex Grönholm
-Anatoly Techtonik
-Antonio Cuni
-Armin Ronacher
-Cap Petschulat
-CBWhiz
-Chris McDonough
-Christian Stefanescu
-Christopher Nilsson
-Cliff Xuan
-Curt Micol
-Doug Hellmann
-Doug Napoleone
-Douglas Creager
-Ethan Jucovy
-Gunnlaugur Thor Briem
-Greg Haskins
-Jason R. Coombs
-Jeff Hammel
-Jonathan Griffin
-Jorge Vargas
-Josh Bronson
-Kumar McMillan
-Lars Francke
-Philip Jenvey
-Ronny Pfannschmidt
-Stefano Rivera
-Tarek Ziadé
-Vinay Sajip
deleted file mode 100644
--- a/other-licenses/virtualenv/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2007 Ian Bicking and Contributors
-Copyright (c) 2009 Ian Bicking, The Open Planning Project
-Copyright (c) 2011-2012 The virtualenv developers
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--- a/other-licenses/virtualenv/MANIFEST.in
+++ b/other-licenses/virtualenv/MANIFEST.in
@@ -1,9 +1,7 @@
 recursive-include docs *.txt
 recursive-include scripts *
 recursive-include virtualenv_support *.egg *.tar.gz
-recursive-include virtualenv_embedded *
+recursive-exclude virtualenv_support *.py
 recursive-exclude docs/_templates *.*
 include virtualenv_support/__init__.py
 include *.py
-include AUTHORS.txt
-include LICENSE.txt
\ No newline at end of file
--- a/other-licenses/virtualenv/PKG-INFO
+++ b/other-licenses/virtualenv/PKG-INFO
@@ -1,154 +1,93 @@
 Metadata-Version: 1.0
 Name: virtualenv
-Version: 1.7.1.2
+Version: 1.4.8
 Summary: Virtual Python Environment builder
-Home-page: http://www.virtualenv.org
-Author: Jannis Leidel, Carl Meyer and Brian Rosner
-Author-email: python-virtualenv@groups.google.com
+Home-page: http://virtualenv.openplans.org
+Author: Ian Bicking
+Author-email: ianb@colorstudy.com
 License: MIT
 Description: 
         
-        Installation
-        ------------
+        Status and License
+        ------------------
+        
+        ``virtualenv`` is a successor to `workingenv
+        <http://cheeseshop.python.org/pypi/workingenv.py>`_, and an extension
+        of `virtual-python
+        <http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python>`_.
         
-        You can install virtualenv with ``pip install virtualenv``, or the `latest
-        development version <https://github.com/pypa/virtualenv/tarball/develop#egg=virtualenv-dev>`_
-        with ``pip install virtualenv==dev``.
+        It is written by Ian Bicking, and sponsored by the `Open Planning
+        Project <http://openplans.org>`_.  It is licensed under an
+        `MIT-style permissive license <license.html>`_.
         
-        You can also use ``easy_install``, or if you have no Python package manager
-        available at all, you can just grab the single file `virtualenv.py`_ and run
-        it with ``python virtualenv.py``.
-        
-        .. _virtualenv.py: https://raw.github.com/pypa/virtualenv/master/virtualenv.py
+        You can install it with ``easy_install virtualenv``, or from the `hg
+        repository <http://bitbucket.org/ianb/virtualenv>`_ or from a `tarball
+        <http://bitbucket.org/ianb/virtualenv/get/tip.gz#egg=virtualenv-tip>`_
+        ``easy_install virtualenv==tip``.
         
         What It Does
         ------------
         
         ``virtualenv`` is a tool to create isolated Python environments.
         
         The basic problem being addressed is one of dependencies and versions,
         and indirectly permissions.  Imagine you have an application that
         needs version 1 of LibFoo, but another application requires version
         2.  How can you use both these applications?  If you install
-        everything into ``/usr/lib/python2.7/site-packages`` (or whatever your
+        everything into ``/usr/lib/python2.4/site-packages`` (or whatever your
         platform's standard location is), it's easy to end up in a situation
         where you unintentionally upgrade an application that shouldn't be
         upgraded.
         
         Or more generally, what if you want to install an application *and
         leave it be*?  If an application works, any change in its libraries or
         the versions of those libraries can break the application.
         
         Also, what if you can't install packages into the global
         ``site-packages`` directory?  For instance, on a shared host.
         
         In all these cases, ``virtualenv`` can help you.  It creates an
         environment that has its own installation directories, that doesn't
         share libraries with other virtualenv environments (and optionally
-        doesn't access the globally installed libraries either).
+        doesn't use the globally installed libraries either).
         
         The basic usage is::
         
-            $ python virtualenv.py ENV
+        $ python virtualenv.py ENV
         
         If you install it you can also just do ``virtualenv ENV``.
         
-        This creates ``ENV/lib/pythonX.X/site-packages``, where any libraries you
-        install will go.  It also creates ``ENV/bin/python``, which is a Python
-        interpreter that uses this environment.  Anytime you use that interpreter
-        (including when a script has ``#!/path/to/ENV/bin/python`` in it) the libraries
-        in that environment will be used.
+        This creates ``ENV/lib/python2.4/site-packages`` (or
+        ``ENV/lib/python2.5/site-packages`` on Python 2.5, etc), where any
+        libraries you install will go.  It also creates ``ENV/bin/python``,
+        which is a Python interpreter that uses this environment.  Anytime you
+        use that interpreter (including when a script has
+        ``#!/path/to/ENV/bin/python`` in it) the libraries in that environment
+        will be used.  (**Note for Windows:** scripts and executables on
+        Windows go in ``ENV\Scripts\``; everywhere you see ``bin/`` replace it
+        with ``Scripts\``)
         
-        It also installs either `Setuptools
-        <http://peak.telecommunity.com/DevCenter/setuptools>`_ or `distribute
-        <http://pypi.python.org/pypi/distribute>`_ into the environment. To use
-        Distribute instead of setuptools, just call virtualenv like this::
-        
-            $ python virtualenv.py --distribute ENV
-        
-        You can also set the environment variable VIRTUALENV_USE_DISTRIBUTE.
-        
-        A new virtualenv also includes the `pip <http://pypy.python.org/pypi/pip>`_
-        installer, so you can use ``ENV/bin/pip`` to install additional packages into
+        It also installs `Setuptools
+        <http://peak.telecommunity.com/DevCenter/setuptools>`_ for you, and if
+        you use ``ENV/bin/easy_install`` the packages will be installed into
         the environment.
         
-        Environment variables and configuration files
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        virtualenv can not only be configured by passing command line options such as
-        ``--distribute`` but also by two other means:
-        
-        - Environment variables
-        
-          Each command line option is automatically used to look for environment
-          variables with the name format ``VIRTUALENV_<UPPER_NAME>``. That means
-          the name of the command line options are capitalized and have dashes
-          (``'-'``) replaced with underscores (``'_'``).
-        
-          For example, to automatically install Distribute instead of setuptools
-          you can also set an environment variable::
-        
-              $ export VIRTUALENV_USE_DISTRIBUTE=true
-              $ python virtualenv.py ENV
-        
-          It's the same as passing the option to virtualenv directly::
-        
-              $ python virtualenv.py --distribute ENV
-        
-          This also works for appending command line options, like ``--find-links``.
-          Just leave an empty space between the passsed values, e.g.::
-        
-              $ export VIRTUALENV_EXTRA_SEARCH_DIR="/path/to/dists /path/to/other/dists"
-              $ virtualenv ENV
-        
-          is the same as calling::
-        
-              $ python virtualenv.py --extra-search-dir=/path/to/dists --extra-search-dir=/path/to/other/dists ENV
-        
-        - Config files
+        If you use the ``--distribute`` option, it will install `distribute
+        <http://pypi.python.org/pypi/distribute>`_ for you, instead of setuptools,
+        and if you use `ENV/bin/easy_install`` the packages will be installed into the
+        environment.
         
-          virtualenv also looks for a standard ini config file. On Unix and Mac OS X
-          that's ``$HOME/.virtualenv/virtualenv.ini`` and on Windows, it's
-          ``%HOME%\\virtualenv\\virtualenv.ini``.
-        
-          The names of the settings are derived from the long command line option,
-          e.g. the option ``--distribute`` would look like this::
-        
-              [virtualenv]
-              distribute = true
-        
-          Appending options like ``--extra-search-dir`` can be written on multiple
-          lines::
-        
-              [virtualenv]
-              extra-search-dir =
-                  /path/to/dists
-                  /path/to/other/dists
+        To use Distribute just call virtualenv like this::
         
-        Please have a look at the output of ``virtualenv --help`` for a full list
-        of supported options.
-        
-        Windows Notes
-        ~~~~~~~~~~~~~
-        
-        Some paths within the virtualenv are slightly different on Windows: scripts and
-        executables on Windows go in ``ENV\Scripts\`` instead of ``ENV/bin/`` and
-        libraries go in ``ENV\Lib\`` rather than ``ENV/lib/``.
+        $ python virtualenv.py --distribute ENV
         
-        To create a virtualenv under a path with spaces in it on Windows, you'll need
-        the `win32api <http://sourceforge.net/projects/pywin32/>`_ library installed.
-        
-        PyPy Support
-        ~~~~~~~~~~~~
-        
-        Beginning with virtualenv version 1.5 `PyPy <http://pypy.org>`_ is
-        supported. To use PyPy 1.4 or 1.4.1, you need a version of virtualenv >= 1.5.
-        To use PyPy 1.5, you need a version of virtualenv >= 1.6.1.
+        You can also set the environment variable VIRTUALENV_USE_DISTRIBUTE (since 1.4.4)
+        and be a good Comrade
         
         Creating Your Own Bootstrap Scripts
         -----------------------------------
         
         While this creates an environment, it doesn't put anything into the
         environment.  Developers may find it useful to distribute a script
         that sets up a particular environment, for example a script that
         installs a particular web application.
@@ -164,207 +103,145 @@ Description:
         This returns a string that (written to disk of course) can be used
         as a bootstrap script with your own customizations.  The script
         will be the standard virtualenv.py script, with your extra text
         added (your extra text should be Python code).
         
         If you include these functions, they will be called:
         
         ``extend_parser(optparse_parser)``:
-            You can add or remove options from the parser here.
+        You can add or remove options from the parser here.
         
         ``adjust_options(options, args)``:
-            You can change options here, or change the args (if you accept
-            different kinds of arguments, be sure you modify ``args`` so it is
-            only ``[DEST_DIR]``).
+        You can change options here, or change the args (if you accept
+        different kinds of arguments, be sure you modify ``args`` so it is
+        only ``[DEST_DIR]``).
         
         ``after_install(options, home_dir)``:
         
-            After everything is installed, this function is called.  This
-            is probably the function you are most likely to use.  An
-            example would be::
+        After everything is installed, this function is called.  This
+        is probably the function you are most likely to use.  An
+        example would be::
         
-                def after_install(options, home_dir):
-                    if sys.platform == 'win32':
-                        bin = 'Scripts'
-                    else:
-                        bin = 'bin'
-                    subprocess.call([join(home_dir, bin, 'easy_install'),
-                                     'MyPackage'])
-                    subprocess.call([join(home_dir, bin, 'my-package-script'),
-                                     'setup', home_dir])
+        def after_install(options, home_dir):
+        if sys.platform == 'win32':
+        bin = 'Scripts'
+        else:
+        bin = 'bin'
+        subprocess.call([join(home_dir, bin, 'easy_install'),
+        'MyPackage'])
+        subprocess.call([join(home_dir, bin, 'my-package-script'),
+        'setup', home_dir])
         
-            This example immediately installs a package, and runs a setup
-            script from that package.
+        This example immediately installs a package, and runs a setup
+        script from that package.
         
         Bootstrap Example
         ~~~~~~~~~~~~~~~~~
         
         Here's a more concrete example of how you could use this::
         
-            import virtualenv, textwrap
-            output = virtualenv.create_bootstrap_script(textwrap.dedent("""
-            import os, subprocess
-            def after_install(options, home_dir):
-                etc = join(home_dir, 'etc')
-                if not os.path.exists(etc):
-                    os.makedirs(etc)
-                subprocess.call([join(home_dir, 'bin', 'easy_install'),
-                                 'BlogApplication'])
-                subprocess.call([join(home_dir, 'bin', 'paster'),
-                                 'make-config', 'BlogApplication',
-                                 join(etc, 'blog.ini')])
-                subprocess.call([join(home_dir, 'bin', 'paster'),
-                                 'setup-app', join(etc, 'blog.ini')])
-            """))
-            f = open('blog-bootstrap.py', 'w').write(output)
+        import virtualenv, textwrap
+        output = virtualenv.create_bootstrap_script(textwrap.dedent("""
+        import os, subprocess
+        def after_install(options, home_dir):
+        etc = join(home_dir, 'etc')
+        if not os.path.exists(etc):
+        os.makedirs(etc)
+        subprocess.call([join(home_dir, 'bin', 'easy_install'),
+        'BlogApplication'])
+        subprocess.call([join(home_dir, 'bin', 'paster'),
+        'make-config', 'BlogApplication',
+        join(etc, 'blog.ini')])
+        subprocess.call([join(home_dir, 'bin', 'paster'),
+        'setup-app', join(etc, 'blog.ini')])
+        """))
+        f = open('blog-bootstrap.py', 'w').write(output)
         
         Another example is available `here
-        <https://github.com/socialplanning/fassembler/blob/master/fassembler/create-venv-script.py>`_.
+        <https://svn.openplans.org/svn/fassembler/trunk/fassembler/create-venv-script.py>`_.
         
         activate script
         ~~~~~~~~~~~~~~~
         
         In a newly created virtualenv there will be a ``bin/activate`` shell
-        script. For Windows systems, activation scripts are provided for CMD.exe
-        and Powershell.
+        script, or a ``Scripts/activate.bat`` batch file on Windows.
         
         On Posix systems you can do::
         
-            $ source bin/activate
+        $ source bin/activate
         
-        This will change your ``$PATH`` to point to the virtualenv's ``bin/``
-        directory.  (You have to use ``source`` because it changes your shell
-        environment in-place.) This is all it does; it's purely a convenience.  If
-        you directly run a script or the python interpreter from the virtualenv's
-        ``bin/`` directory (e.g.  ``path/to/env/bin/pip`` or
-        ``/path/to/env/bin/python script.py``) there's no need for activation.
-        
-        After activating an environment you can use the function ``deactivate`` to
-        undo the changes to your ``$PATH``.
+        This will change your ``$PATH`` to point to the virtualenv ``bin/``
+        directory.  Unlike workingenv, this is all it
+        does; it's a convenience.  But if you use the complete path like
+        ``/path/to/env/bin/python script.py`` you do not need to activate the
+        environment first.  You have to use ``source`` because it changes the
+        environment in-place.  After activating an environment you can use the
+        function ``deactivate`` to undo the changes.
         
         The ``activate`` script will also modify your shell prompt to indicate
         which environment is currently active.  You can disable this behavior,
         which can be useful if you have your own custom prompt that already
         displays the active environment name.  To do so, set the
         ``VIRTUAL_ENV_DISABLE_PROMPT`` environment variable to any non-empty
         value before running the ``activate`` script.
         
         On Windows you just do::
         
-            > \path\to\env\Scripts\activate
-        
-        And type `deactivate` to undo the changes.
-        
-        Based on your active shell (CMD.exe or Powershell.exe), Windows will use
-        either activate.bat or activate.ps1 (as appropriate) to activate the
-        virtual environment. If using Powershell, see the notes about code signing
-        below.
-        
-        .. note::
-        
-            If using Powershell, the ``activate`` script is subject to the
-            `execution policies`_ on the system. By default on Windows 7, the system's
-            excution policy is set to ``Restricted``, meaning no scripts like the
-            ``activate`` script are allowed to be executed. But that can't stop us
-            from changing that slightly to allow it to be executed.
+        > \path\to\env\bin\activate.bat
         
-            In order to use the script, you have to relax your system's execution
-            policy to ``AllSigned``, meaning all scripts on the system must be
-            digitally signed to be executed. Since the virtualenv activation
-            script is signed by one of the authors (Jannis Leidel) this level of
-            the execution policy suffices. As an adminstrator run::
-        
-                PS C:\> Set-ExecutionPolicy AllSigned
+        And use ``deactivate.bat`` to undo the changes.
         
-            Then you'll be asked to trust the signer, when executing the script.
-            You will be prompted with the following::
-        
-                PS C:\> virtualenv .\foo
-                New python executable in C:\foo\Scripts\python.exe
-                Installing setuptools................done.
-                Installing pip...................done.
-                PS C:\> .\foo\scripts\activate
+        The ``--no-site-packages`` Option
+        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         
-                Do you want to run software from this untrusted publisher?
-                File C:\foo\scripts\activate.ps1 is published by E=jannis@leidel.info,
-                CN=Jannis Leidel, L=Berlin, S=Berlin, C=DE, Description=581796-Gh7xfJxkxQSIO4E0
-                and is not trusted on your system. Only run scripts from trusted publishers.
-                [V] Never run  [D] Do not run  [R] Run once  [A] Always run  [?] Help
-                (default is "D"):A
-                (foo) PS C:\>
-        
-            If you select ``[A] Always Run``, the certificate will be added to the
-            Trusted Publishers of your user account, and will be trusted in this
-            user's context henceforth. If you select ``[R] Run Once``, the script will
-            be run, but you will be prometed on a subsequent invocation. Advanced users
-            can add the signer's certificate to the Trusted Publishers of the Computer
-            account to apply to all users (though this technique is out of scope of this
-            document).
-        
-            Alternatively, you may relax the system execution policy to allow running
-            of local scripts without verifying the code signature using the following::
-        
-                PS C:\> Set-ExecutionPolicy RemoteSigned
-        
-            Since the ``activate.ps1`` script is generated locally for each virtualenv,
-            it is not considered a remote script and can then be executed.
-        
-        .. _`execution policies`: http://technet.microsoft.com/en-us/library/dd347641.aspx
-        
-        The ``--system-site-packages`` Option
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        If you build with ``virtualenv --system-site-packages ENV``, your virtual
-        environment will inherit packages from ``/usr/lib/python2.7/site-packages``
-        (or wherever your global site-packages directory is).
-        
-        This can be used if you have control over the global site-packages directory,
-        and you want to depend on the packages there.  If you want isolation from the
-        global system, do not use this flag.
+        If you build with ``virtualenv --no-site-packages ENV`` it will *not*
+        inherit any packages from ``/usr/lib/python2.5/site-packages`` (or
+        wherever your global site-packages directory is).  This can be used if
+        you don't have control over site-packages and don't want to depend on
+        the packages there, or you just want more isolation from the global
+        system.
         
         Using Virtualenv without ``bin/python``
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         
         Sometimes you can't or don't want to use the Python interpreter
         created by the virtualenv.  For instance, in a `mod_python
         <http://www.modpython.org/>`_ or `mod_wsgi <http://www.modwsgi.org/>`_
         environment, there is only one interpreter.
         
         Luckily, it's easy.  You must use the custom Python interpreter to
         *install* libraries.  But to *use* libraries, you just have to be sure
         the path is correct.  A script is available to correct the path.  You
         can setup the environment like::
         
-            activate_this = '/path/to/env/bin/activate_this.py'
-            execfile(activate_this, dict(__file__=activate_this))
+        activate_this = '/path/to/env/bin/activate_this.py'
+        execfile(activate_this, dict(__file__=activate_this))
         
-        This will change ``sys.path`` and even change ``sys.prefix``, but also allow
-        you to use an existing interpreter.  Items in your environment will show up
-        first on ``sys.path``, before global items.  However, global items will
-        always be accessible (as if the ``--system-site-packages`` flag had been used
-        in creating the environment, whether it was or not).  Also, this cannot undo
-        the activation of other environments, or modules that have been imported.
-        You shouldn't try to, for instance, activate an environment before a web
-        request; you should activate *one* environment as early as possible, and not
-        do it again in that process.
+        This will change ``sys.path`` and even change ``sys.prefix``, but also
+        allow you to use an existing interpreter.  Items in your environment
+        will show up first on ``sys.path``, before global items.  However,
+        this cannot undo the activation of other environments, or modules that
+        have been imported.  You shouldn't try to, for instance, activate an
+        environment before a web request; you should activate *one*
+        environment as early as possible, and not do it again in that process.
         
         Making Environments Relocatable
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         
         Note: this option is somewhat experimental, and there are probably
         caveats that have not yet been identified.  Also this does not
         currently work on Windows.
         
         Normally environments are tied to a specific path.  That means that
         you cannot move an environment around or copy it to another computer.
         You can fix up an environment to make it relocatable with the
         command::
         
-            $ virtualenv --relocatable ENV
+        $ virtualenv --relocatable ENV
         
         This will make some of the files created by setuptools or distribute
         use relative paths, and will change all the scripts to use ``activate_this.py``
         instead of using the location of the Python interpreter to select the
         environment.
         
         **Note:** you must run this after you've installed *any* packages into
         the environment.  If you make an environment relocatable, then
@@ -377,646 +254,81 @@ Description:
         incompatibilities: a different version of Python, when one platform
         uses UCS2 for its internal unicode representation and another uses
         UCS4 (a compile-time option), obvious platform changes like Windows
         vs. Linux, or Intel vs. ARM, and if you have libraries that bind to C
         libraries on the system, if those C libraries are located somewhere
         different (either different versions, or a different filesystem
         layout).
         
-        If you use this flag to create an environment, currently, the
-        ``--system-site-packages`` option will be implied.
-        
-        The ``--extra-search-dir`` Option
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        When it creates a new environment, virtualenv installs either
-        setuptools or distribute, and pip.  In normal operation, the latest
-        releases of these packages are fetched from the `Python Package Index
-        <http://pypi.python.org>`_ (PyPI). In some circumstances, this
-        behavior may not be wanted, for example if you are using virtualenv
-        during a deployment and do not want to depend on Internet access and
-        PyPI availability.
-        
-        As an alternative, you can provide your own versions of setuptools,
-        distribute and/or pip on the filesystem, and tell virtualenv to use
-        those distributions instead of downloading them from the Internet.  To
-        use this feature, pass one or more ``--extra-search-dir`` options to
-        virtualenv like this::
-        
-            $ virtualenv --extra-search-dir=/path/to/distributions ENV
-        
-        The ``/path/to/distributions`` path should point to a directory that
-        contains setuptools, distribute and/or pip distributions.  Setuptools
-        distributions must be ``.egg`` files; distribute and pip distributions
-        should be `.tar.gz` source distributions.
-        
-        Virtualenv will still download these packages if no satisfactory local
-        distributions are found.
-        
-        If you are really concerned about virtualenv fetching these packages
-        from the Internet and want to ensure that it never will, you can also
-        provide an option ``--never-download`` like so::
-        
-            $ virtualenv --extra-search-dir=/path/to/distributions --never-download ENV
-        
-        If this option is provided, virtualenv will never try to download
-        setuptools/distribute or pip. Instead, it will exit with status code 1
-        if it fails to find local distributions for any of these required
-        packages. The local distribution lookup is done in this order and the
-        following locations:
-        
-            #. The current directory.
-            #. The directory where virtualenv.py is located.
-            #. A ``virtualenv_support`` directory relative to the directory where
-               virtualenv.py is located.
-            #. If the file being executed is not named virtualenv.py (i.e. is a boot
-               script), a ``virtualenv_support`` directory relative to wherever
-               virtualenv.py is actually installed.
+        Currently the ``--no-site-packages`` option will not be honored if you
+        use this on an environment.
         
         Compare & Contrast with Alternatives
         ------------------------------------
         
         There are several alternatives that create isolated environments:
         
         * ``workingenv`` (which I do not suggest you use anymore) is the
-          predecessor to this library.  It used the main Python interpreter,
-          but relied on setting ``$PYTHONPATH`` to activate the environment.
-          This causes problems when running Python scripts that aren't part of
-          the environment (e.g., a globally installed ``hg`` or ``bzr``).  It
-          also conflicted a lot with Setuptools.
+        predecessor to this library.  It used the main Python interpreter,
+        but relied on setting ``$PYTHONPATH`` to activate the environment.
+        This causes problems when running Python scripts that aren't part of
+        the environment (e.g., a globally installed ``hg`` or ``bzr``).  It
+        also conflicted a lot with Setuptools.
         
         * `virtual-python
-          <http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python>`_
-          is also a predecessor to this library.  It uses only symlinks, so it
-          couldn't work on Windows.  It also symlinks over the *entire*
-          standard library and global ``site-packages``.  As a result, it
-          won't see new additions to the global ``site-packages``.
+        <http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python>`_
+        is also a predecessor to this library.  It uses only symlinks, so it
+        couldn't work on Windows.  It also symlinks over the *entire*
+        standard library and global ``site-packages``.  As a result, it
+        won't see new additions to the global ``site-packages``.
         
-          This script only symlinks a small portion of the standard library
-          into the environment, and so on Windows it is feasible to simply
-          copy these files over.  Also, it creates a new/empty
-          ``site-packages`` and also adds the global ``site-packages`` to the
-          path, so updates are tracked separately.  This script also installs
-          Setuptools automatically, saving a step and avoiding the need for
-          network access.
+        This script only symlinks a small portion of the standard library
+        into the environment, and so on Windows it is feasible to simply
+        copy these files over.  Also, it creates a new/empty
+        ``site-packages`` and also adds the global ``site-packages`` to the
+        path, so updates are tracked separately.  This script also installs
+        Setuptools automatically, saving a step and avoiding the need for
+        network access.
         
         * `zc.buildout <http://pypi.python.org/pypi/zc.buildout>`_ doesn't
-          create an isolated Python environment in the same style, but
-          achieves similar results through a declarative config file that sets
-          up scripts with very particular packages.  As a declarative system,
-          it is somewhat easier to repeat and manage, but more difficult to
-          experiment with.  ``zc.buildout`` includes the ability to setup
-          non-Python systems (e.g., a database server or an Apache instance).
+        create an isolated Python environment in the same style, but
+        achieves similar results through a declarative config file that sets
+        up scripts with very particular packages.  As a declarative system,
+        it is somewhat easier to repeat and manage, but more difficult to
+        experiment with.  ``zc.buildout`` includes the ability to setup
+        non-Python systems (e.g., a database server or an Apache instance).
         
         I *strongly* recommend anyone doing application development or
         deployment use one of these tools.
         
-        Contributing
-        ------------
-        
-        Refer to the `contributing to pip`_ documentation - it applies equally to
-        virtualenv.
-        
-        Virtualenv's release schedule is tied to pip's -- each time there's a new pip
-        release, there will be a new virtualenv release that bundles the new version of
-        pip.
-        
-        .. _contributing to pip: http://www.pip-installer.org/en/latest/contributing.html
-        
-        Running the tests
-        ~~~~~~~~~~~~~~~~~
-        
-        Virtualenv's test suite is small and not yet at all comprehensive, but we aim
-        to grow it.
-        
-        The easy way to run tests (handles test dependencies automatically)::
-        
-            $ python setup.py test
-        
-        If you want to run only a selection of the tests, you'll need to run them
-        directly with nose instead. Create a virtualenv, and install required
-        packages::
-        
-            $ pip install nose mock
-        
-        Run nosetests::
-        
-            $ nosetests
-        
-        Or select just a single test file to run::
-        
-            $ nosetests tests.test_virtualenv
-        
-        
         Other Documentation and Links
         -----------------------------
         
         * James Gardner has written a tutorial on using `virtualenv with
-          Pylons
-          <http://wiki.pylonshq.com/display/pylonscookbook/Using+a+Virtualenv+Sandbox>`_.
+        Pylons
+        <http://wiki.pylonshq.com/display/pylonscookbook/Using+a+Virtualenv+Sandbox>`_.
         
         * `Blog announcement
-          <http://blog.ianbicking.org/2007/10/10/workingenv-is-dead-long-live-virtualenv/>`_.
+        <http://blog.ianbicking.org/2007/10/10/workingenv-is-dead-long-live-virtualenv/>`_.
         
         * Doug Hellmann wrote a description of his `command-line work flow
-          using virtualenv (virtualenvwrapper)
-          <http://www.doughellmann.com/articles/CompletelyDifferent-2008-05-virtualenvwrapper/index.html>`_
-          including some handy scripts to make working with multiple
-          environments easier.  He also wrote `an example of using virtualenv
-          to try IPython
-          <http://www.doughellmann.com/articles/CompletelyDifferent-2008-02-ipython-and-virtualenv/index.html>`_.
+        using virtualenv (virtualenvwrapper)
+        <http://www.doughellmann.com/articles/CompletelyDifferent-2008-05-virtualenvwrapper/index.html>`_
+        including some handy scripts to make working with multiple
+        environments easier.  He also wrote `an example of using virtualenv
+        to try IPython
+        <http://www.doughellmann.com/articles/CompletelyDifferent-2008-02-ipython-and-virtualenv/index.html>`_.
         
         * Chris Perkins created a `showmedo video including virtualenv
-          <http://showmedo.com/videos/video?name=2910000&fromSeriesID=291>`_.
+        <http://showmedo.com/videos/video?name=2910000&fromSeriesID=291>`_.
         
         * `Using virtualenv with mod_wsgi
-          <http://code.google.com/p/modwsgi/wiki/VirtualEnvironments>`_.
+        <http://code.google.com/p/modwsgi/wiki/VirtualEnvironments>`_.
         
         * `virtualenv commands
-          <http://thisismedium.com/tech/extending-virtualenv/>`_ for some more
-          workflow-related tools around virtualenv.
-        
-        Status and License
-        ------------------
-        
-        ``virtualenv`` is a successor to `workingenv
-        <http://cheeseshop.python.org/pypi/workingenv.py>`_, and an extension
-        of `virtual-python
-        <http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python>`_.
-        
-        It was written by Ian Bicking, sponsored by the `Open Planning
-        Project <http://openplans.org>`_ and is now maintained by a
-        `group of developers <https://github.com/pypa/virtualenv/raw/master/AUTHORS.txt>`_.
-        It is licensed under an
-        `MIT-style permissive license <https://github.com/pypa/virtualenv/raw/master/LICENSE.txt>`_.
-        
-        Changes & News
-        --------------
-        
-        1.7.1.2 (2012-02-17)
-        ~~~~~~~~~~~~~~~~~~~~
-        
-        * Fixed minor issue in `--relocatable`. Thanks, Cap Petschulat.
-        
-        1.7.1.1 (2012-02-16)
-        ~~~~~~~~~~~~~~~~~~~~
-        
-        * Bumped the version string in ``virtualenv.py`` up, too.
-        
-        * Fixed rST rendering bug of long description.
-        
-        1.7.1 (2012-02-16)
-        ~~~~~~~~~~~~~~~~~~
-        
-        * Update embedded pip to version 1.1.
-        
-        * Fix `--relocatable` under Python 3. Thanks Doug Hellmann.
-        
-        * Added environ PATH modification to activate_this.py. Thanks Doug
-          Napoleone. Fixes #14.
-        
-        * Support creating virtualenvs directly from a Python build directory on
-          Windows. Thanks CBWhiz. Fixes #139.
-        
-        * Use non-recursive symlinks to fix things up for posix_local install
-          scheme. Thanks michr.
-        
-        * Made activate script available for use with msys and cygwin on Windows.
-          Thanks Greg Haskins, Cliff Xuan, Jonathan Griffin and Doug Napoleone.
-          Fixes #176.
-        
-        * Fixed creation of virtualenvs on Windows when Python is not installed for
-          all users. Thanks Anatoly Techtonik for report and patch and Doug
-          Napoleone for testing and confirmation. Fixes #87.
-        
-        * Fixed creation of virtualenvs using -p in installs where some modules
-          that ought to be in the standard library (e.g. `readline`) are actually
-          installed in `site-packages` next to `virtualenv.py`. Thanks Greg Haskins
-          for report and fix. Fixes #167.
-        
-        * Added activation script for Powershell (signed by Jannis Leidel). Many
-          thanks to Jason R. Coombs.
-        
-        1.7 (2011-11-30)
-        ~~~~~~~~~~~~~~~~
-        
-        * Gave user-provided ``--extra-search-dir`` priority over default dirs for
-          finding setuptools/distribute (it already had priority for finding pip).
-          Thanks Ethan Jucovy.
-        
-        * Updated embedded Distribute release to 0.6.24. Thanks Alex Gronholm.
-        
-        * Made ``--no-site-packages`` behavior the default behavior.  The
-          ``--no-site-packages`` flag is still permitted, but displays a warning when
-          used. Thanks Chris McDonough.
-        
-        * New flag: ``--system-site-packages``; this flag should be passed to get the
-          previous default global-site-package-including behavior back.
-        
-        * Added ability to set command options as environment variables and options
-          in a ``virtualenv.ini`` file.
-        
-        * Fixed various encoding related issues with paths. Thanks Gunnlaugur Thor Briem.
-        
-        * Made ``virtualenv.py`` script executable.
-        
-        1.6.4 (2011-07-21)
-        ~~~~~~~~~~~~~~~~~~
-        
-        * Restored ability to run on Python 2.4, too.
-        
-        1.6.3 (2011-07-16)
-        ~~~~~~~~~~~~~~~~~~
-        
-        * Restored ability to run on Python < 2.7.
-        
-        1.6.2 (2011-07-16)
-        ~~~~~~~~~~~~~~~~~~
-        
-        * Updated embedded distribute release to 0.6.19.
-        
-        * Updated embedded pip release to 1.0.2.
-        
-        * Fixed #141 - Be smarter about finding pkg_resources when using the
-          non-default Python intepreter (by using the ``-p`` option).
-        
-        * Fixed #112 - Fixed path in docs.
-        
-        * Fixed #109 - Corrected doctests of a Logger method.
-        
-        * Fixed #118 - Fixed creating virtualenvs on platforms that use the
-          "posix_local" install scheme, such as Ubuntu with Python 2.7.
-        
-        * Add missing library to Python 3 virtualenvs (``_dummy_thread``).
-        
-        
-        1.6.1 (2011-04-30)
-        ~~~~~~~~~~~~~~~~~~
-        
-        * Start to use git-flow.
-        
-        * Added support for PyPy 1.5
-        
-        * Fixed #121 -- added sanity-checking of the -p argument. Thanks Paul Nasrat.
-        
-        * Added progress meter for pip installation as well as setuptools. Thanks Ethan
-          Jucovy.
-        
-        * Added --never-download and --search-dir options. Thanks Ethan Jucovy.
-        
-        1.6
-        ~~~
-        
-        * Added Python 3 support! Huge thanks to Vinay Sajip and Vitaly Babiy.
-        
-        * Fixed creation of virtualenvs on Mac OS X when standard library modules
-          (readline) are installed outside the standard library.
-        
-        * Updated bundled pip to 1.0.
-        
-        1.5.2
-        ~~~~~
-        
-        * Moved main repository to Github: https://github.com/pypa/virtualenv
-        
-        * Transferred primary maintenance from Ian to Jannis Leidel, Carl Meyer and Brian Rosner
-        
-        * Fixed a few more pypy related bugs.
-        
-        * Updated bundled pip to 0.8.2.
-        
-        * Handed project over to new team of maintainers.
-        
-        * Moved virtualenv to Github at https://github.com/pypa/virtualenv
-        
-        1.5.1
-        ~~~~~
-        
-        * Added ``_weakrefset`` requirement for Python 2.7.1.
-        
-        * Fixed Windows regression in 1.5
-        
-        1.5
-        ~~~
-        
-        * Include pip 0.8.1.
-        
-        * Add support for PyPy.
-        
-        * Uses a proper temporary dir when installing environment requirements.
-        
-        * Add ``--prompt`` option to be able to override the default prompt prefix.
-        
-        * Fix an issue with ``--relocatable`` on Windows.
-        
-        * Fix issue with installing the wrong version of distribute.
-        
-        * Add fish and csh activate scripts.
-        
-        1.4.9
-        ~~~~~
-        
-        * Include pip 0.7.2
-        
-        1.4.8
-        ~~~~~
-        
-        * Fix for Mac OS X Framework builds that use
-          ``--universal-archs=intel``
-        
-        * Fix ``activate_this.py`` on Windows.
-        
-        * Allow ``$PYTHONHOME`` to be set, so long as you use ``source
-          bin/activate`` it will get unset; if you leave it set and do not
-          activate the environment it will still break the environment.
-        
-        * Include pip 0.7.1
-        
-        1.4.7
-        ~~~~~
-        
-        * Include pip 0.7
-        
-        1.4.6
-        ~~~~~
-        
-        * Allow ``activate.sh`` to skip updating the prompt (by setting
-          ``$VIRTUAL_ENV_DISABLE_PROMPT``).
-        
-        1.4.5
-        ~~~~~
-        
-        * Include pip 0.6.3
-        
-        * Fix ``activate.bat`` and ``deactivate.bat`` under Windows when
-          ``PATH`` contained a parenthesis
-        
-        1.4.4
-        ~~~~~
-        
-        * Include pip 0.6.2 and Distribute 0.6.10
-        
-        * Create the ``virtualenv`` script even when Setuptools isn't
-          installed
-        
-        * Fix problem with ``virtualenv --relocate`` when ``bin/`` has
-          subdirectories (e.g., ``bin/.svn/``); from Alan Franzoni.
-        
-        * If you set ``$VIRTUALENV_USE_DISTRIBUTE`` then virtualenv will use
-          Distribute by default (so you don't have to remember to use
-          ``--distribute``).
-        
-        1.4.3
-        ~~~~~
-        
-        * Include pip 0.6.1
-        
-        1.4.2
-        ~~~~~
-        
-        * Fix pip installation on Windows
-        
-        * Fix use of stand-alone ``virtualenv.py`` (and boot scripts)
-        
-        * Exclude ~/.local (user site-packages) from environments when using
-          ``--no-site-packages``
-        
-        1.4.1
-        ~~~~~
-        
-        * Include pip 0.6
-        
-        1.4
-        ~~~
-        
-        * Updated setuptools to 0.6c11
-        
-        * Added the --distribute option
-        
-        * Fixed packaging problem of support-files
-        
-        1.3.4
-        ~~~~~
-        
-        * Virtualenv now copies the actual embedded Python binary on
-          Mac OS X to fix a hang on Snow Leopard (10.6).
-        
-        * Fail more gracefully on Windows when ``win32api`` is not installed.
-        
-        * Fix site-packages taking precedent over Jython's ``__classpath__``
-          and also specially handle the new ``__pyclasspath__`` entry in
-          ``sys.path``.
-        
-        * Now copies Jython's ``registry`` file to the virtualenv if it exists.
-        
-        * Better find libraries when compiling extensions on Windows.
-        
-        * Create ``Scripts\pythonw.exe`` on Windows.
-        
-        * Added support for the Debian/Ubuntu
-          ``/usr/lib/pythonX.Y/dist-packages`` directory.
-        
-        * Set ``distutils.sysconfig.get_config_vars()['LIBDIR']`` (based on
-          ``sys.real_prefix``) which is reported to help building on Windows.
-        
-        * Make ``deactivate`` work on ksh
-        
-        * Fixes for ``--python``: make it work with ``--relocatable`` and the
-          symlink created to the exact Python version.
-        
-        1.3.3
-        ~~~~~
-        
-        * Use Windows newlines in ``activate.bat``, which has been reported to help
-          when using non-ASCII directory names.
-        
-        * Fixed compatibility with Jython 2.5b1.
-        
-        * Added a function ``virtualenv.install_python`` for more fine-grained
-          access to what ``virtualenv.create_environment`` does.
-        
-        * Fix `a problem <https://bugs.launchpad.net/virtualenv/+bug/241581>`_
-          with Windows and paths that contain spaces.
-        
-        * If ``/path/to/env/.pydistutils.cfg`` exists (or
-          ``/path/to/env/pydistutils.cfg`` on Windows systems) then ignore
-          ``~/.pydistutils.cfg`` and use that other file instead.
-        
-        * Fix ` a problem
-          <https://bugs.launchpad.net/virtualenv/+bug/340050>`_ picking up
-          some ``.so`` libraries in ``/usr/local``.
-        
-        1.3.2
-        ~~~~~
-        
-        * Remove the ``[install] prefix = ...`` setting from the virtualenv
-          ``distutils.cfg`` -- this has been causing problems for a lot of
-          people, in rather obscure ways.
-        
-        * If you use a `boot script <./index.html#boot-script>`_ it will attempt to import ``virtualenv``
-          and find a pre-downloaded Setuptools egg using that.
-        
-        * Added platform-specific paths, like ``/usr/lib/pythonX.Y/plat-linux2``
-        
-        1.3.1
-        ~~~~~
-        
-        * Real Python 2.6 compatibility.  Backported the Python 2.6 updates to
-          ``site.py``, including `user directories
-          <http://docs.python.org/dev/whatsnew/2.6.html#pep-370-per-user-site-packages-directory>`_
-          (this means older versions of Python will support user directories,
-          whether intended or not).
-        
-        * Always set ``[install] prefix`` in ``distutils.cfg`` -- previously
-          on some platforms where a system-wide ``distutils.cfg`` was present
-          with a ``prefix`` setting, packages would be installed globally
-          (usually in ``/usr/local/lib/pythonX.Y/site-packages``).
-        
-        * Sometimes Cygwin seems to leave ``.exe`` off ``sys.executable``; a
-          workaround is added.
-        
-        * Fix ``--python`` option.
-        
-        * Fixed handling of Jython environments that use a
-          jython-complete.jar.
-        
-        1.3
-        ~~~
-        
-        * Update to Setuptools 0.6c9
-        * Added an option ``virtualenv --relocatable EXISTING_ENV``, which
-          will make an existing environment "relocatable" -- the paths will
-          not be absolute in scripts, ``.egg-info`` and ``.pth`` files.  This
-          may assist in building environments that can be moved and copied.
-          You have to run this *after* any new packages installed.
-        * Added ``bin/activate_this.py``, a file you can use like
-          ``execfile("path_to/activate_this.py",
-          dict(__file__="path_to/activate_this.py"))`` -- this will activate
-          the environment in place, similar to what `the mod_wsgi example
-          does <http://code.google.com/p/modwsgi/wiki/VirtualEnvironments>`_.
-        * For Mac framework builds of Python, the site-packages directory
-          ``/Library/Python/X.Y/site-packages`` is added to ``sys.path``, from
-          Andrea Rech.
-        * Some platform-specific modules in Macs are added to the path now
-          (``plat-darwin/``, ``plat-mac/``, ``plat-mac/lib-scriptpackages``),
-          from Andrea Rech.
-        * Fixed a small Bashism in the ``bin/activate`` shell script.
-        * Added ``__future__`` to the list of required modules, for Python
-          2.3.  You'll still need to backport your own ``subprocess`` module.
-        * Fixed the ``__classpath__`` entry in Jython's ``sys.path`` taking
-          precedent over virtualenv's libs.
-        
-        1.2
-        ~~~
-        
-        * Added a ``--python`` option to select the Python interpreter.
-        * Add ``warnings`` to the modules copied over, for Python 2.6 support.
-        * Add ``sets`` to the module copied over for Python 2.3 (though Python
-          2.3 still probably doesn't work).
-        
-        1.1.1
-        ~~~~~
-        
-        * Added support for Jython 2.5.
-        
-        1.1
-        ~~~
-        
-        * Added support for Python 2.6.
-        * Fix a problem with missing ``DLLs/zlib.pyd`` on Windows.  Create
-        * ``bin/python`` (or ``bin/python.exe``) even when you run virtualenv
-          with an interpreter named, e.g., ``python2.4``
-        * Fix MacPorts Python
-        * Added --unzip-setuptools option
-        * Update to Setuptools 0.6c8
-        * If the current directory is not writable, run ez_setup.py in ``/tmp``
-        * Copy or symlink over the ``include`` directory so that packages will
-          more consistently compile.
-        
-        1.0
-        ~~~
-        
-        * Fix build on systems that use ``/usr/lib64``, distinct from
-          ``/usr/lib`` (specifically CentOS x64).
-        * Fixed bug in ``--clear``.
-        * Fixed typos in ``deactivate.bat``.
-        * Preserve ``$PYTHONPATH`` when calling subprocesses.
-        
-        0.9.2
-        ~~~~~
-        
-        * Fix include dir copying on Windows (makes compiling possible).
-        * Include the main ``lib-tk`` in the path.
-        * Patch ``distutils.sysconfig``: ``get_python_inc`` and
-          ``get_python_lib`` to point to the global locations.
-        * Install ``distutils.cfg`` before Setuptools, so that system
-          customizations of ``distutils.cfg`` won't effect the installation.
-        * Add ``bin/pythonX.Y`` to the virtualenv (in addition to
-          ``bin/python``).
-        * Fixed an issue with Mac Framework Python builds, and absolute paths
-          (from Ronald Oussoren).
-        
-        0.9.1
-        ~~~~~
-        
-        * Improve ability to create a virtualenv from inside a virtualenv.
-        * Fix a little bug in ``bin/activate``.
-        * Actually get ``distutils.cfg`` to work reliably.
-        
-        0.9
-        ~~~
-        
-        * Added ``lib-dynload`` and ``config`` to things that need to be
-          copied over in an environment.
-        * Copy over or symlink the ``include`` directory, so that you can
-          build packages that need the C headers.
-        * Include a ``distutils`` package, so you can locally update
-          ``distutils.cfg`` (in ``lib/pythonX.Y/distutils/distutils.cfg``).
-        * Better avoid downloading Setuptools, and hitting PyPI on environment
-          creation.
-        * Fix a problem creating a ``lib64/`` directory.
-        * Should work on MacOSX Framework builds (the default Python
-          installations on Mac).  Thanks to Ronald Oussoren.
-        
-        0.8.4
-        ~~~~~
-        
-        * Windows installs would sometimes give errors about ``sys.prefix`` that
-          were inaccurate.
-        * Slightly prettier output.
-        
-        0.8.3
-        ~~~~~
-        
-        * Added support for Windows.
-        
-        0.8.2
-        ~~~~~
-        
-        * Give a better warning if you are on an unsupported platform (Mac
-          Framework Pythons, and Windows).
-        * Give error about running while inside a workingenv.
-        * Give better error message about Python 2.3.
-        
-        0.8.1
-        ~~~~~
-        
-        Fixed packaging of the library.
-        
-        0.8
-        ~~~
-        
-        Initial release.  Everything is changed and new!
-        
+        <http://thisismedium.com/tech/extending-virtualenv/>`_ for some more
+        workflow-related tools around virtualenv.
 Keywords: setuptools deployment installation distutils
 Platform: UNKNOWN
 Classifier: Development Status :: 4 - Beta
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: MIT License
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.4
-Classifier: Programming Language :: Python :: 2.5
-Classifier: Programming Language :: Python :: 2.6
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.1
-Classifier: Programming Language :: Python :: 3.2
new file mode 100644
--- /dev/null
+++ b/other-licenses/virtualenv/docs/_build/_sources/index.txt
@@ -0,0 +1,335 @@
+virtualenv
+==========
+
+* `Discussion list <http://groups.google.com/group/python-virtualenv/>`_
+* `Bugs <https://bitbucket.org/ianb/virtualenv/issues/>`_
+
+.. contents::
+
+.. toctree::
+   :maxdepth: 1
+
+   news
+   license
+
+.. comment: split here
+
+Status and License
+------------------
+
+``virtualenv`` is a successor to `workingenv
+<http://cheeseshop.python.org/pypi/workingenv.py>`_, and an extension
+of `virtual-python
+<http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python>`_.
+
+It is written by Ian Bicking, and sponsored by the `Open Planning
+Project <http://openplans.org>`_.  It is licensed under an
+`MIT-style permissive license <license.html>`_.
+
+You can install it with ``easy_install virtualenv``, or from the `hg
+repository <http://bitbucket.org/ianb/virtualenv>`_ or from a `tarball
+<http://bitbucket.org/ianb/virtualenv/get/tip.gz#egg=virtualenv-tip>`_
+``easy_install virtualenv==tip``.
+
+What It Does
+------------
+
+``virtualenv`` is a tool to create isolated Python environments.
+
+The basic problem being addressed is one of dependencies and versions,
+and indirectly permissions.  Imagine you have an application that
+needs version 1 of LibFoo, but another application requires version
+2.  How can you use both these applications?  If you install
+everything into ``/usr/lib/python2.4/site-packages`` (or whatever your
+platform's standard location is), it's easy to end up in a situation
+where you unintentionally upgrade an application that shouldn't be
+upgraded.
+
+Or more generally, what if you want to install an application *and
+leave it be*?  If an application works, any change in its libraries or
+the versions of those libraries can break the application.
+
+Also, what if you can't install packages into the global
+``site-packages`` directory?  For instance, on a shared host.
+
+In all these cases, ``virtualenv`` can help you.  It creates an
+environment that has its own installation directories, that doesn't
+share libraries with other virtualenv environments (and optionally
+doesn't use the globally installed libraries either).
+
+The basic usage is::
+
+    $ python virtualenv.py ENV
+
+If you install it you can also just do ``virtualenv ENV``.
+
+This creates ``ENV/lib/python2.4/site-packages`` (or
+``ENV/lib/python2.5/site-packages`` on Python 2.5, etc), where any
+libraries you install will go.  It also creates ``ENV/bin/python``,
+which is a Python interpreter that uses this environment.  Anytime you
+use that interpreter (including when a script has
+``#!/path/to/ENV/bin/python`` in it) the libraries in that environment
+will be used.  (**Note for Windows:** scripts and executables on
+Windows go in ``ENV\Scripts\``; everywhere you see ``bin/`` replace it
+with ``Scripts\``)
+
+It also installs `Setuptools
+<http://peak.telecommunity.com/DevCenter/setuptools>`_ for you, and if
+you use ``ENV/bin/easy_install`` the packages will be installed into
+the environment.
+
+If you use the ``--distribute`` option, it will install `distribute
+<http://pypi.python.org/pypi/distribute>`_ for you, instead of setuptools,
+and if you use `ENV/bin/easy_install`` the packages will be installed into the
+environment.
+
+To use Distribute just call virtualenv like this::
+
+    $ python virtualenv.py --distribute ENV
+
+You can also set the environment variable VIRTUALENV_USE_DISTRIBUTE (since 1.4.4) 
+and be a good Comrade
+
+Creating Your Own Bootstrap Scripts
+-----------------------------------
+
+While this creates an environment, it doesn't put anything into the
+environment.  Developers may find it useful to distribute a script
+that sets up a particular environment, for example a script that
+installs a particular web application.
+
+To create a script like this, call
+``virtualenv.create_bootstrap_script(extra_text)``, and write the
+result to your new bootstrapping script.  Here's the documentation
+from the docstring:
+
+Creates a bootstrap script, which is like this script but with
+extend_parser, adjust_options, and after_install hooks.
+
+This returns a string that (written to disk of course) can be used
+as a bootstrap script with your own customizations.  The script
+will be the standard virtualenv.py script, with your extra text
+added (your extra text should be Python code).
+
+If you include these functions, they will be called:
+
+``extend_parser(optparse_parser)``:
+    You can add or remove options from the parser here.
+
+``adjust_options(options, args)``:
+    You can change options here, or change the args (if you accept
+    different kinds of arguments, be sure you modify ``args`` so it is
+    only ``[DEST_DIR]``).
+
+``after_install(options, home_dir)``:
+
+    After everything is installed, this function is called.  This
+    is probably the function you are most likely to use.  An
+    example would be::
+
+        def after_install(options, home_dir):
+            if sys.platform == 'win32':
+                bin = 'Scripts'
+            else:
+                bin = 'bin'
+            subprocess.call([join(home_dir, bin, 'easy_install'),
+                             'MyPackage'])
+            subprocess.call([join(home_dir, bin, 'my-package-script'),
+                             'setup', home_dir])
+
+    This example immediately installs a package, and runs a setup
+    script from that package.
+
+Bootstrap Example
+~~~~~~~~~~~~~~~~~
+
+Here's a more concrete example of how you could use this::
+
+    import virtualenv, textwrap
+    output = virtualenv.create_bootstrap_script(textwrap.dedent("""
+    import os, subprocess
+    def after_install(options, home_dir):
+        etc = join(home_dir, 'etc')
+        if not os.path.exists(etc):
+            os.makedirs(etc)
+        subprocess.call([join(home_dir, 'bin', 'easy_install'),
+                         'BlogApplication'])
+        subprocess.call([join(home_dir, 'bin', 'paster'),
+                         'make-config', 'BlogApplication',
+                         join(etc, 'blog.ini')])
+        subprocess.call([join(home_dir, 'bin', 'paster'),
+                         'setup-app', join(etc, 'blog.ini')])
+    """))
+    f = open('blog-bootstrap.py', 'w').write(output)
+
+Another example is available `here
+<https://svn.openplans.org/svn/fassembler/trunk/fassembler/create-venv-script.py>`_.
+
+activate script
+~~~~~~~~~~~~~~~
+
+In a newly created virtualenv there will be a ``bin/activate`` shell
+script, or a ``Scripts/activate.bat`` batch file on Windows.
+
+On Posix systems you can do::
+
+  $ source bin/activate
+
+This will change your ``$PATH`` to point to the virtualenv ``bin/``
+directory.  Unlike workingenv, this is all it
+does; it's a convenience.  But if you use the complete path like
+``/path/to/env/bin/python script.py`` you do not need to activate the
+environment first.  You have to use ``source`` because it changes the
+environment in-place.  After activating an environment you can use the
+function ``deactivate`` to undo the changes.
+
+The ``activate`` script will also modify your shell prompt to indicate
+which environment is currently active.  You can disable this behavior,
+which can be useful if you have your own custom prompt that already
+displays the active environment name.  To do so, set the
+``VIRTUAL_ENV_DISABLE_PROMPT`` environment variable to any non-empty
+value before running the ``activate`` script.
+
+On Windows you just do::
+
+  > \path\to\env\bin\activate.bat
+
+And use ``deactivate.bat`` to undo the changes.
+
+The ``--no-site-packages`` Option
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you build with ``virtualenv --no-site-packages ENV`` it will *not*
+inherit any packages from ``/usr/lib/python2.5/site-packages`` (or
+wherever your global site-packages directory is).  This can be used if
+you don't have control over site-packages and don't want to depend on
+the packages there, or you just want more isolation from the global
+system.
+
+Using Virtualenv without ``bin/python``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Sometimes you can't or don't want to use the Python interpreter
+created by the virtualenv.  For instance, in a `mod_python
+<http://www.modpython.org/>`_ or `mod_wsgi <http://www.modwsgi.org/>`_
+environment, there is only one interpreter.
+
+Luckily, it's easy.  You must use the custom Python interpreter to
+*install* libraries.  But to *use* libraries, you just have to be sure
+the path is correct.  A script is available to correct the path.  You
+can setup the environment like::
+
+    activate_this = '/path/to/env/bin/activate_this.py'
+    execfile(activate_this, dict(__file__=activate_this))
+
+This will change ``sys.path`` and even change ``sys.prefix``, but also
+allow you to use an existing interpreter.  Items in your environment
+will show up first on ``sys.path``, before global items.  However,
+this cannot undo the activation of other environments, or modules that
+have been imported.  You shouldn't try to, for instance, activate an
+environment before a web request; you should activate *one*
+environment as early as possible, and not do it again in that process.
+
+Making Environments Relocatable
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Note: this option is somewhat experimental, and there are probably
+caveats that have not yet been identified.  Also this does not
+currently work on Windows.
+
+Normally environments are tied to a specific path.  That means that
+you cannot move an environment around or copy it to another computer.
+You can fix up an environment to make it relocatable with the
+command::
+
+    $ virtualenv --relocatable ENV
+
+This will make some of the files created by setuptools or distribute
+use relative paths, and will change all the scripts to use ``activate_this.py``
+instead of using the location of the Python interpreter to select the
+environment.
+
+**Note:** you must run this after you've installed *any* packages into
+the environment.  If you make an environment relocatable, then
+install a new package, you must run ``virtualenv --relocatable``
+again.
+
+Also, this **does not make your packages cross-platform**.  You can
+move the directory around, but it can only be used on other similar
+computers.  Some known environmental differences that can cause
+incompatibilities: a different version of Python, when one platform
+uses UCS2 for its internal unicode representation and another uses
+UCS4 (a compile-time option), obvious platform changes like Windows
+vs. Linux, or Intel vs. ARM, and if you have libraries that bind to C
+libraries on the system, if those C libraries are located somewhere
+different (either different versions, or a different filesystem
+layout).
+
+Currently the ``--no-site-packages`` option will not be honored if you
+use this on an environment.
+
+Compare & Contrast with Alternatives
+------------------------------------
+
+There are several alternatives that create isolated environments:
+
+* ``workingenv`` (which I do not suggest you use anymore) is the
+  predecessor to this library.  It used the main Python interpreter,
+  but relied on setting ``$PYTHONPATH`` to activate the environment.
+  This causes problems when running Python scripts that aren't part of
+  the environment (e.g., a globally installed ``hg`` or ``bzr``).  It
+  also conflicted a lot with Setuptools.
+
+* `virtual-python
+  <http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python>`_
+  is also a predecessor to this library.  It uses only symlinks, so it
+  couldn't work on Windows.  It also symlinks over the *entire*
+  standard library and global ``site-packages``.  As a result, it
+  won't see new additions to the global ``site-packages``.
+
+  This script only symlinks a small portion of the standard library
+  into the environment, and so on Windows it is feasible to simply
+  copy these files over.  Also, it creates a new/empty
+  ``site-packages`` and also adds the global ``site-packages`` to the
+  path, so updates are tracked separately.  This script also installs
+  Setuptools automatically, saving a step and avoiding the need for
+  network access.
+
+* `zc.buildout <http://pypi.python.org/pypi/zc.buildout>`_ doesn't
+  create an isolated Python environment in the same style, but
+  achieves similar results through a declarative config file that sets
+  up scripts with very particular packages.  As a declarative system,
+  it is somewhat easier to repeat and manage, but more difficult to
+  experiment with.  ``zc.buildout`` includes the ability to setup
+  non-Python systems (e.g., a database server or an Apache instance).
+
+I *strongly* recommend anyone doing application development or
+deployment use one of these tools.
+
+Other Documentation and Links
+-----------------------------
+
+* James Gardner has written a tutorial on using `virtualenv with
+  Pylons
+  <http://wiki.pylonshq.com/display/pylonscookbook/Using+a+Virtualenv+Sandbox>`_.
+
+* `Blog announcement
+  <http://blog.ianbicking.org/2007/10/10/workingenv-is-dead-long-live-virtualenv/>`_.
+
+* Doug Hellmann wrote a description of his `command-line work flow
+  using virtualenv (virtualenvwrapper)
+  <http://www.doughellmann.com/articles/CompletelyDifferent-2008-05-virtualenvwrapper/index.html>`_
+  including some handy scripts to make working with multiple
+  environments easier.  He also wrote `an example of using virtualenv
+  to try IPython
+  <http://www.doughellmann.com/articles/CompletelyDifferent-2008-02-ipython-and-virtualenv/index.html>`_.
+
+* Chris Perkins created a `showmedo video including virtualenv
+  <http://showmedo.com/videos/video?name=2910000&fromSeriesID=291>`_.
+
+* `Using virtualenv with mod_wsgi
+  <http://code.google.com/p/modwsgi/wiki/VirtualEnvironments>`_.
+
+* `virtualenv commands
+  <http://thisismedium.com/tech/extending-virtualenv/>`_ for some more
+  workflow-related tools around virtualenv.
new file mode 100644
--- /dev/null
+++ b/other-licenses/virtualenv/docs/_build/_sources/license.txt
@@ -0,0 +1,23 @@
+License
+=======
+
+Copyright (c) 2007 Ian Bicking and Contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
new file mode 100644
--- /dev/null
+++ b/other-licenses/virtualenv/docs/_build/_sources/news.txt
@@ -0,0 +1,284 @@
+Changes & News
+--------------
+
+hg tip
+------
+
+* Fix for Mac OS X Framework builds that use
+  ``--universal-archs=intel``
+
+1.4.7
+-----
+
+* Include pip 0.7
+
+1.4.6
+~~~~~
+
+* Allow ``activate.sh`` to skip updating the prompt (by setting
+  ``$VIRTUAL_ENV_DISABLE_PROMPT``).
+
+1.4.5
+~~~~~
+
+* Include pip 0.6.3
+
+* Fix ``activate.bat`` and ``deactivate.bat`` under Windows when
+  ``PATH`` contained a parenthesis
+
+1.4.4
+~~~~~
+
+* Include pip 0.6.2 and Distribute 0.6.10
+
+* Create the ``virtualenv`` script even when Setuptools isn't
+  installed
+
+* Fix problem with ``virtualenv --relocate`` when ``bin/`` has
+  subdirectories (e.g., ``bin/.svn/``); from Alan Franzoni.
+
+* If you set ``$VIRTUALENV_USE_DISTRIBUTE`` then virtualenv will use
+  Distribute by default (so you don't have to remember to use
+  ``--distribute``).
+
+1.4.3
+~~~~~
+
+* Include pip 0.6.1
+
+1.4.2
+~~~~~
+
+* Fix pip installation on Windows
+
+* Fix use of stand-alone ``virtualenv.py`` (and boot scripts)
+
+* Exclude ~/.local (user site-packages) from environments when using
+  ``--no-site-packages``
+
+1.4.1
+~~~~~
+
+* Include pip 0.6
+
+1.4
+~~~
+
+* Updated setuptools to 0.6c11
+
+* Added the --distribute option
+
+* Fixed packaging problem of support-files
+
+1.3.4
+~~~~~
+
+* Virtualenv now copies the actual embedded Python binary on
+  Mac OS X to fix a hang on Snow Leopard (10.6).
+
+* Fail more gracefully on Windows when ``win32api`` is not installed.
+
+* Fix site-packages taking precedent over Jython's ``__classpath__``
+  and also specially handle the new ``__pyclasspath__`` entry in
+  ``sys.path``.
+
+* Now copies Jython's ``registry`` file to the virtualenv if it exists.
+
+* Better find libraries when compiling extensions on Windows.
+
+* Create ``Scripts\pythonw.exe`` on Windows.
+
+* Added support for the Debian/Ubuntu
+  ``/usr/lib/pythonX.Y/dist-packages`` directory.
+
+* Set ``distutils.sysconfig.get_config_vars()['LIBDIR']`` (based on
+  ``sys.real_prefix``) which is reported to help building on Windows.
+
+* Make ``deactivate`` work on ksh
+
+* Fixes for ``--python``: make it work with ``--relocatable`` and the
+  symlink created to the exact Python version.
+
+1.3.3
+~~~~~
+
+* Use Windows newlines in ``activate.bat``, which has been reported to help
+  when using non-ASCII directory names.
+
+* Fixed compatibility with Jython 2.5b1.
+
+* Added a function ``virtualenv.install_python`` for more fine-grained
+  access to what ``virtualenv.create_environment`` does.
+
+* Fix `a problem <https://bugs.launchpad.net/virtualenv/+bug/241581>`_
+  with Windows and paths that contain spaces.
+
+* If ``/path/to/env/.pydistutils.cfg`` exists (or
+  ``/path/to/env/pydistutils.cfg`` on Windows systems) then ignore
+  ``~/.pydistutils.cfg`` and use that other file instead.
+
+* Fix ` a problem
+  <https://bugs.launchpad.net/virtualenv/+bug/340050>`_ picking up
+  some ``.so`` libraries in ``/usr/local``.
+
+1.3.2
+~~~~~
+
+* Remove the ``[install] prefix = ...`` setting from the virtualenv
+  ``distutils.cfg`` -- this has been causing problems for a lot of
+  people, in rather obscure ways.
+
+* If you use a `boot script <./index.html#boot-script>`_ it will attempt to import ``virtualenv``
+  and find a pre-downloaded Setuptools egg using that.
+
+* Added platform-specific paths, like ``/usr/lib/pythonX.Y/plat-linux2``
+
+1.3.1
+~~~~~
+
+* Real Python 2.6 compatibility.  Backported the Python 2.6 updates to
+  ``site.py``, including `user directories
+  <http://docs.python.org/dev/whatsnew/2.6.html#pep-370-per-user-site-packages-directory>`_
+  (this means older versions of Python will support user directories,
+  whether intended or not).
+
+* Always set ``[install] prefix`` in ``distutils.cfg`` -- previously
+  on some platforms where a system-wide ``distutils.cfg`` was present
+  with a ``prefix`` setting, packages would be installed globally
+  (usually in ``/usr/local/lib/pythonX.Y/site-packages``).
+
+* Sometimes Cygwin seems to leave ``.exe`` off ``sys.executable``; a
+  workaround is added.
+
+* Fix ``--python`` option.
+
+* Fixed handling of Jython environments that use a
+  jython-complete.jar.
+
+1.3
+~~~
+
+* Update to Setuptools 0.6c9
+* Added an option ``virtualenv --relocatable EXISTING_ENV``, which
+  will make an existing environment "relocatable" -- the paths will
+  not be absolute in scripts, ``.egg-info`` and ``.pth`` files.  This
+  may assist in building environments that can be moved and copied.
+  You have to run this *after* any new packages installed.
+* Added ``bin/activate_this.py``, a file you can use like
+  ``execfile("path_to/activate_this.py",
+  dict(__file__="path_to/activate_this.py"))`` -- this will activate
+  the environment in place, similar to what `the mod_wsgi example
+  does <http://code.google.com/p/modwsgi/wiki/VirtualEnvironments>`_.
+* For Mac framework builds of Python, the site-packages directory
+  ``/Library/Python/X.Y/site-packages`` is added to ``sys.path``, from
+  Andrea Rech.
+* Some platform-specific modules in Macs are added to the path now
+  (``plat-darwin/``, ``plat-mac/``, ``plat-mac/lib-scriptpackages``),
+  from Andrea Rech.
+* Fixed a small Bashism in the ``bin/activate`` shell script.
+* Added ``__future__`` to the list of required modules, for Python
+  2.3.  You'll still need to backport your own ``subprocess`` module.
+* Fixed the ``__classpath__`` entry in Jython's ``sys.path`` taking
+  precedent over virtualenv's libs.
+
+1.2
+~~~
+
+* Added a ``--python`` option to select the Python interpreter.
+* Add ``warnings`` to the modules copied over, for Python 2.6 support.
+* Add ``sets`` to the module copied over for Python 2.3 (though Python
+  2.3 still probably doesn't work).
+
+1.1.1
+~~~~~
+
+* Added support for Jython 2.5.
+
+1.1
+~~~
+
+* Added support for Python 2.6.
+* Fix a problem with missing ``DLLs/zlib.pyd`` on Windows.  Create
+* ``bin/python`` (or ``bin/python.exe``) even when you run virtualenv
+  with an interpreter named, e.g., ``python2.4``
+* Fix MacPorts Python
+* Added --unzip-setuptools option
+* Update to Setuptools 0.6c8
+* If the current directory is not writable, run ez_setup.py in ``/tmp``
+* Copy or symlink over the ``include`` directory so that packages will
+  more consistently compile.
+
+1.0
+~~~
+
+* Fix build on systems that use ``/usr/lib64``, distinct from
+  ``/usr/lib`` (specifically CentOS x64).
+* Fixed bug in ``--clear``.
+* Fixed typos in ``deactivate.bat``.
+* Preserve ``$PYTHONPATH`` when calling subprocesses.
+
+0.9.2
+~~~~~
+
+* Fix include dir copying on Windows (makes compiling possible).
+* Include the main ``lib-tk`` in the path.
+* Patch ``distutils.sysconfig``: ``get_python_inc`` and
+  ``get_python_lib`` to point to the global locations.
+* Install ``distutils.cfg`` before Setuptools, so that system
+  customizations of ``distutils.cfg`` won't effect the installation.
+* Add ``bin/pythonX.Y`` to the virtualenv (in addition to
+  ``bin/python``).
+* Fixed an issue with Mac Framework Python builds, and absolute paths
+  (from Ronald Oussoren).
+
+0.9.1
+~~~~~
+
+* Improve ability to create a virtualenv from inside a virtualenv.
+* Fix a little bug in ``bin/activate``.
+* Actually get ``distutils.cfg`` to work reliably.
+
+0.9
+~~~
+
+* Added ``lib-dynload`` and ``config`` to things that need to be
+  copied over in an environment.
+* Copy over or symlink the ``include`` directory, so that you can
+  build packages that need the C headers.
+* Include a ``distutils`` package, so you can locally update
+  ``distutils.cfg`` (in ``lib/pythonX.Y/distutils/distutils.cfg``).
+* Better avoid downloading Setuptools, and hitting PyPI on environment
+  creation.
+* Fix a problem creating a ``lib64/`` directory.
+* Should work on MacOSX Framework builds (the default Python
+  installations on Mac).  Thanks to Ronald Oussoren.
+
+0.8.4
+~~~~~
+
+* Windows installs would sometimes give errors about ``sys.prefix`` that
+  were inaccurate.
+* Slightly prettier output.
+
+0.8.3
+~~~~~
+
+* Added support for Windows.
+
+0.8.2
+~~~~~
+
+* Give a better warning if you are on an unsupported platform (Mac
+  Framework Pythons, and Windows).
+* Give error about running while inside a workingenv.
+* Give better error message about Python 2.3.
+
+0.8.1
+~~~~~
+
+Fixed packaging of the library.
+
+0.8
+~~~
+
+Initial release.  Everything is changed and new!
--- a/other-licenses/virtualenv/docs/index.txt
+++ b/other-licenses/virtualenv/docs/index.txt
@@ -1,159 +1,99 @@
 virtualenv
 ==========
 
 * `Discussion list <http://groups.google.com/group/python-virtualenv/>`_
-* `Bugs <https://github.com/pypa/virtualenv/issues/>`_
+* `Bugs <https://bitbucket.org/ianb/virtualenv/issues/>`_
 
 .. contents::
 
 .. toctree::
    :maxdepth: 1
 
    news
+   license
 
 .. comment: split here
 
-Installation
-------------
+Status and License
+------------------
+
+``virtualenv`` is a successor to `workingenv
+<http://cheeseshop.python.org/pypi/workingenv.py>`_, and an extension
+of `virtual-python
+<http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python>`_.
 
-You can install virtualenv with ``pip install virtualenv``, or the `latest
-development version <https://github.com/pypa/virtualenv/tarball/develop#egg=virtualenv-dev>`_
-with ``pip install virtualenv==dev``.
+It is written by Ian Bicking, and sponsored by the `Open Planning
+Project <http://openplans.org>`_.  It is licensed under an
+`MIT-style permissive license <license.html>`_.
 
-You can also use ``easy_install``, or if you have no Python package manager
-available at all, you can just grab the single file `virtualenv.py`_ and run
-it with ``python virtualenv.py``.
-
-.. _virtualenv.py: https://raw.github.com/pypa/virtualenv/master/virtualenv.py
+You can install it with ``easy_install virtualenv``, or from the `hg
+repository <http://bitbucket.org/ianb/virtualenv>`_ or from a `tarball
+<http://bitbucket.org/ianb/virtualenv/get/tip.gz#egg=virtualenv-tip>`_
+``easy_install virtualenv==tip``.
 
 What It Does
 ------------
 
 ``virtualenv`` is a tool to create isolated Python environments.
 
 The basic problem being addressed is one of dependencies and versions,
 and indirectly permissions.  Imagine you have an application that
 needs version 1 of LibFoo, but another application requires version
 2.  How can you use both these applications?  If you install
-everything into ``/usr/lib/python2.7/site-packages`` (or whatever your
+everything into ``/usr/lib/python2.4/site-packages`` (or whatever your
 platform's standard location is), it's easy to end up in a situation
 where you unintentionally upgrade an application that shouldn't be
 upgraded.
 
 Or more generally, what if you want to install an application *and
 leave it be*?  If an application works, any change in its libraries or
 the versions of those libraries can break the application.
 
 Also, what if you can't install packages into the global
 ``site-packages`` directory?  For instance, on a shared host.
 
 In all these cases, ``virtualenv`` can help you.  It creates an
 environment that has its own installation directories, that doesn't
 share libraries with other virtualenv environments (and optionally
-doesn't access the globally installed libraries either).
+doesn't use the globally installed libraries either).
 
 The basic usage is::
 
     $ python virtualenv.py ENV
 
 If you install it you can also just do ``virtualenv ENV``.
 
-This creates ``ENV/lib/pythonX.X/site-packages``, where any libraries you
-install will go.  It also creates ``ENV/bin/python``, which is a Python
-interpreter that uses this environment.  Anytime you use that interpreter
-(including when a script has ``#!/path/to/ENV/bin/python`` in it) the libraries
-in that environment will be used.
+This creates ``ENV/lib/python2.4/site-packages`` (or
+``ENV/lib/python2.5/site-packages`` on Python 2.5, etc), where any
+libraries you install will go.  It also creates ``ENV/bin/python``,
+which is a Python interpreter that uses this environment.  Anytime you
+use that interpreter (including when a script has
+``#!/path/to/ENV/bin/python`` in it) the libraries in that environment
+will be used.  (**Note for Windows:** scripts and executables on
+Windows go in ``ENV\Scripts\``; everywhere you see ``bin/`` replace it
+with ``Scripts\``)
 
-It also installs either `Setuptools
-<http://peak.telecommunity.com/DevCenter/setuptools>`_ or `distribute
-<http://pypi.python.org/pypi/distribute>`_ into the environment. To use
-Distribute instead of setuptools, just call virtualenv like this::
+It also installs `Setuptools
+<http://peak.telecommunity.com/DevCenter/setuptools>`_ for you, and if
+you use ``ENV/bin/easy_install`` the packages will be installed into
+the environment.
+
+If you use the ``--distribute`` option, it will install `distribute
+<http://pypi.python.org/pypi/distribute>`_ for you, instead of setuptools,
+and if you use `ENV/bin/easy_install`` the packages will be installed into the
+environment.
+
+To use Distribute just call virtualenv like this::
 
     $ python virtualenv.py --distribute ENV
 
-You can also set the environment variable VIRTUALENV_USE_DISTRIBUTE.
-
-A new virtualenv also includes the `pip <http://pypy.python.org/pypi/pip>`_
-installer, so you can use ``ENV/bin/pip`` to install additional packages into
-the environment.
-
-Environment variables and configuration files
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-virtualenv can not only be configured by passing command line options such as
-``--distribute`` but also by two other means:
-
-- Environment variables
-
-  Each command line option is automatically used to look for environment
-  variables with the name format ``VIRTUALENV_<UPPER_NAME>``. That means
-  the name of the command line options are capitalized and have dashes
-  (``'-'``) replaced with underscores (``'_'``).
-
-  For example, to automatically install Distribute instead of setuptools
-  you can also set an environment variable::
-
-      $ export VIRTUALENV_USE_DISTRIBUTE=true
-      $ python virtualenv.py ENV
-
-  It's the same as passing the option to virtualenv directly::
-
-      $ python virtualenv.py --distribute ENV
-
-  This also works for appending command line options, like ``--find-links``.
-  Just leave an empty space between the passsed values, e.g.::
-
-      $ export VIRTUALENV_EXTRA_SEARCH_DIR="/path/to/dists /path/to/other/dists"
-      $ virtualenv ENV
-
-  is the same as calling::
-
-      $ python virtualenv.py --extra-search-dir=/path/to/dists --extra-search-dir=/path/to/other/dists ENV
-
-- Config files
-
-  virtualenv also looks for a standard ini config file. On Unix and Mac OS X
-  that's ``$HOME/.virtualenv/virtualenv.ini`` and on Windows, it's
-  ``%HOME%\\virtualenv\\virtualenv.ini``.
-
-  The names of the settings are derived from the long command line option,
-  e.g. the option ``--distribute`` would look like this::
-
-      [virtualenv]
-      distribute = true
-
-  Appending options like ``--extra-search-dir`` can be written on multiple
-  lines::
-
-      [virtualenv]
-      extra-search-dir =
-          /path/to/dists
-          /path/to/other/dists
-
-Please have a look at the output of ``virtualenv --help`` for a full list
-of supported options.
-
-Windows Notes
-~~~~~~~~~~~~~
-
-Some paths within the virtualenv are slightly different on Windows: scripts and
-executables on Windows go in ``ENV\Scripts\`` instead of ``ENV/bin/`` and
-libraries go in ``ENV\Lib\`` rather than ``ENV/lib/``.
-
-To create a virtualenv under a path with spaces in it on Windows, you'll need
-the `win32api <http://sourceforge.net/projects/pywin32/>`_ library installed.
-
-PyPy Support
-~~~~~~~~~~~~
-
-Beginning with virtualenv version 1.5 `PyPy <http://pypy.org>`_ is
-supported. To use PyPy 1.4 or 1.4.1, you need a version of virtualenv >= 1.5.
-To use PyPy 1.5, you need a version of virtualenv >= 1.6.1.
+You can also set the environment variable VIRTUALENV_USE_DISTRIBUTE (since 1.4.4) 
+and be a good Comrade
 
 Creating Your Own Bootstrap Scripts
 -----------------------------------
 
 While this creates an environment, it doesn't put anything into the
 environment.  Developers may find it useful to distribute a script
 that sets up a particular environment, for example a script that
 installs a particular web application.
@@ -218,118 +158,58 @@ Here's a more concrete example of how yo
                          'make-config', 'BlogApplication',
                          join(etc, 'blog.ini')])
         subprocess.call([join(home_dir, 'bin', 'paster'),
                          'setup-app', join(etc, 'blog.ini')])
     """))
     f = open('blog-bootstrap.py', 'w').write(output)
 
 Another example is available `here
-<https://github.com/socialplanning/fassembler/blob/master/fassembler/create-venv-script.py>`_.
+<https://svn.openplans.org/svn/fassembler/trunk/fassembler/create-venv-script.py>`_.
 
 activate script
 ~~~~~~~~~~~~~~~
 
 In a newly created virtualenv there will be a ``bin/activate`` shell
-script. For Windows systems, activation scripts are provided for CMD.exe
-and Powershell.
+script, or a ``Scripts/activate.bat`` batch file on Windows.
 
 On Posix systems you can do::
 
-    $ source bin/activate
+  $ source bin/activate
 
-This will change your ``$PATH`` to point to the virtualenv's ``bin/``
-directory.  (You have to use ``source`` because it changes your shell
-environment in-place.) This is all it does; it's purely a convenience.  If
-you directly run a script or the python interpreter from the virtualenv's
-``bin/`` directory (e.g.  ``path/to/env/bin/pip`` or
-``/path/to/env/bin/python script.py``) there's no need for activation.
-
-After activating an environment you can use the function ``deactivate`` to
-undo the changes to your ``$PATH``.
+This will change your ``$PATH`` to point to the virtualenv ``bin/``
+directory.  Unlike workingenv, this is all it
+does; it's a convenience.  But if you use the complete path like
+``/path/to/env/bin/python script.py`` you do not need to activate the
+environment first.  You have to use ``source`` because it changes the
+environment in-place.  After activating an environment you can use the
+function ``deactivate`` to undo the changes.
 
 The ``activate`` script will also modify your shell prompt to indicate
 which environment is currently active.  You can disable this behavior,
 which can be useful if you have your own custom prompt that already
 displays the active environment name.  To do so, set the
 ``VIRTUAL_ENV_DISABLE_PROMPT`` environment variable to any non-empty
 value before running the ``activate`` script.
 
 On Windows you just do::
 
-    > \path\to\env\Scripts\activate
-
-And type `deactivate` to undo the changes.
-
-Based on your active shell (CMD.exe or Powershell.exe), Windows will use
-either activate.bat or activate.ps1 (as appropriate) to activate the
-virtual environment. If using Powershell, see the notes about code signing
-below.
-
-.. note::
-
-    If using Powershell, the ``activate`` script is subject to the
-    `execution policies`_ on the system. By default on Windows 7, the system's
-    excution policy is set to ``Restricted``, meaning no scripts like the
-    ``activate`` script are allowed to be executed. But that can't stop us
-    from changing that slightly to allow it to be executed.
+  > \path\to\env\bin\activate.bat
 
-    In order to use the script, you have to relax your system's execution
-    policy to ``AllSigned``, meaning all scripts on the system must be
-    digitally signed to be executed. Since the virtualenv activation
-    script is signed by one of the authors (Jannis Leidel) this level of
-    the execution policy suffices. As an adminstrator run::
-
-        PS C:\> Set-ExecutionPolicy AllSigned
+And use ``deactivate.bat`` to undo the changes.
 
-    Then you'll be asked to trust the signer, when executing the script.
-    You will be prompted with the following::
-
-        PS C:\> virtualenv .\foo
-        New python executable in C:\foo\Scripts\python.exe
-        Installing setuptools................done.
-        Installing pip...................done.
-        PS C:\> .\foo\scripts\activate
+The ``--no-site-packages`` Option
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-        Do you want to run software from this untrusted publisher?
-        File C:\foo\scripts\activate.ps1 is published by E=jannis@leidel.info,
-        CN=Jannis Leidel, L=Berlin, S=Berlin, C=DE, Description=581796-Gh7xfJxkxQSIO4E0
-        and is not trusted on your system. Only run scripts from trusted publishers.
-        [V] Never run  [D] Do not run  [R] Run once  [A] Always run  [?] Help
-        (default is "D"):A
-        (foo) PS C:\>
-
-    If you select ``[A] Always Run``, the certificate will be added to the
-    Trusted Publishers of your user account, and will be trusted in this
-    user's context henceforth. If you select ``[R] Run Once``, the script will
-    be run, but you will be prometed on a subsequent invocation. Advanced users
-    can add the signer's certificate to the Trusted Publishers of the Computer
-    account to apply to all users (though this technique is out of scope of this
-    document).
-
-    Alternatively, you may relax the system execution policy to allow running
-    of local scripts without verifying the code signature using the following::
-
-        PS C:\> Set-ExecutionPolicy RemoteSigned
-
-    Since the ``activate.ps1`` script is generated locally for each virtualenv,
-    it is not considered a remote script and can then be executed.
-
-.. _`execution policies`: http://technet.microsoft.com/en-us/library/dd347641.aspx
-
-The ``--system-site-packages`` Option
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you build with ``virtualenv --system-site-packages ENV``, your virtual
-environment will inherit packages from ``/usr/lib/python2.7/site-packages``
-(or wherever your global site-packages directory is).
-
-This can be used if you have control over the global site-packages directory,
-and you want to depend on the packages there.  If you want isolation from the
-global system, do not use this flag.
+If you build with ``virtualenv --no-site-packages ENV`` it will *not*
+inherit any packages from ``/usr/lib/python2.5/site-packages`` (or
+wherever your global site-packages directory is).  This can be used if
+you don't have control over site-packages and don't want to depend on
+the packages there, or you just want more isolation from the global
+system.
 
 Using Virtualenv without ``bin/python``
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Sometimes you can't or don't want to use the Python interpreter
 created by the virtualenv.  For instance, in a `mod_python
 <http://www.modpython.org/>`_ or `mod_wsgi <http://www.modwsgi.org/>`_
 environment, there is only one interpreter.
@@ -337,25 +217,23 @@ environment, there is only one interpret
 Luckily, it's easy.  You must use the custom Python interpreter to
 *install* libraries.  But to *use* libraries, you just have to be sure
 the path is correct.  A script is available to correct the path.  You
 can setup the environment like::
 
     activate_this = '/path/to/env/bin/activate_this.py'
     execfile(activate_this, dict(__file__=activate_this))
 
-This will change ``sys.path`` and even change ``sys.prefix``, but also allow
-you to use an existing interpreter.  Items in your environment will show up
-first on ``sys.path``, before global items.  However, global items will
-always be accessible (as if the ``--system-site-packages`` flag had been used
-in creating the environment, whether it was or not).  Also, this cannot undo
-the activation of other environments, or modules that have been imported.
-You shouldn't try to, for instance, activate an environment before a web
-request; you should activate *one* environment as early as possible, and not
-do it again in that process.
+This will change ``sys.path`` and even change ``sys.prefix``, but also
+allow you to use an existing interpreter.  Items in your environment
+will show up first on ``sys.path``, before global items.  However,
+this cannot undo the activation of other environments, or modules that
+have been imported.  You shouldn't try to, for instance, activate an
+environment before a web request; you should activate *one*
+environment as early as possible, and not do it again in that process.
 
 Making Environments Relocatable
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Note: this option is somewhat experimental, and there are probably
 caveats that have not yet been identified.  Also this does not
 currently work on Windows.
 
@@ -382,65 +260,18 @@ computers.  Some known environmental dif
 incompatibilities: a different version of Python, when one platform
 uses UCS2 for its internal unicode representation and another uses
 UCS4 (a compile-time option), obvious platform changes like Windows
 vs. Linux, or Intel vs. ARM, and if you have libraries that bind to C
 libraries on the system, if those C libraries are located somewhere
 different (either different versions, or a different filesystem
 layout).
 
-If you use this flag to create an environment, currently, the
-``--system-site-packages`` option will be implied.
-
-The ``--extra-search-dir`` Option
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When it creates a new environment, virtualenv installs either
-setuptools or distribute, and pip.  In normal operation, the latest
-releases of these packages are fetched from the `Python Package Index
-<http://pypi.python.org>`_ (PyPI). In some circumstances, this
-behavior may not be wanted, for example if you are using virtualenv
-during a deployment and do not want to depend on Internet access and
-PyPI availability.
-
-As an alternative, you can provide your own versions of setuptools,
-distribute and/or pip on the filesystem, and tell virtualenv to use
-those distributions instead of downloading them from the Internet.  To
-use this feature, pass one or more ``--extra-search-dir`` options to
-virtualenv like this::
-
-    $ virtualenv --extra-search-dir=/path/to/distributions ENV
-
-The ``/path/to/distributions`` path should point to a directory that
-contains setuptools, distribute and/or pip distributions.  Setuptools
-distributions must be ``.egg`` files; distribute and pip distributions
-should be `.tar.gz` source distributions.
-
-Virtualenv will still download these packages if no satisfactory local
-distributions are found.
-
-If you are really concerned about virtualenv fetching these packages
-from the Internet and want to ensure that it never will, you can also
-provide an option ``--never-download`` like so::
-
-    $ virtualenv --extra-search-dir=/path/to/distributions --never-download ENV
-
-If this option is provided, virtualenv will never try to download
-setuptools/distribute or pip. Instead, it will exit with status code 1
-if it fails to find local distributions for any of these required
-packages. The local distribution lookup is done in this order and the
-following locations:
-
-    #. The current directory.
-    #. The directory where virtualenv.py is located.
-    #. A ``virtualenv_support`` directory relative to the directory where
-       virtualenv.py is located.
-    #. If the file being executed is not named virtualenv.py (i.e. is a boot
-       script), a ``virtualenv_support`` directory relative to wherever
-       virtualenv.py is actually installed.
+Currently the ``--no-site-packages`` option will not be honored if you
+use this on an environment.
 
 Compare & Contrast with Alternatives
 ------------------------------------
 
 There are several alternatives that create isolated environments:
 
 * ``workingenv`` (which I do not suggest you use anymore) is the
   predecessor to this library.  It used the main Python interpreter,
@@ -470,53 +301,16 @@ There are several alternatives that crea
   up scripts with very particular packages.  As a declarative system,
   it is somewhat easier to repeat and manage, but more difficult to
   experiment with.  ``zc.buildout`` includes the ability to setup
   non-Python systems (e.g., a database server or an Apache instance).
 
 I *strongly* recommend anyone doing application development or
 deployment use one of these tools.
 
-Contributing
-------------
-
-Refer to the `contributing to pip`_ documentation - it applies equally to
-virtualenv.
-
-Virtualenv's release schedule is tied to pip's -- each time there's a new pip
-release, there will be a new virtualenv release that bundles the new version of
-pip.
-
-.. _contributing to pip: http://www.pip-installer.org/en/latest/contributing.html
-
-Running the tests
-~~~~~~~~~~~~~~~~~
-
-Virtualenv's test suite is small and not yet at all comprehensive, but we aim
-to grow it.
-
-The easy way to run tests (handles test dependencies automatically)::
-
-    $ python setup.py test
-
-If you want to run only a selection of the tests, you'll need to run them
-directly with nose instead. Create a virtualenv, and install required
-packages::
-
-    $ pip install nose mock
-
-Run nosetests::
-
-    $ nosetests
-
-Or select just a single test file to run::
-
-    $ nosetests tests.test_virtualenv
-
-
 Other Documentation and Links
 -----------------------------
 
 * James Gardner has written a tutorial on using `virtualenv with
   Pylons
   <http://wiki.pylonshq.com/display/pylonscookbook/Using+a+Virtualenv+Sandbox>`_.
 
 * `Blog announcement
@@ -534,22 +328,8 @@ Other Documentation and Links
   <http://showmedo.com/videos/video?name=2910000&fromSeriesID=291>`_.
 
 * `Using virtualenv with mod_wsgi
   <http://code.google.com/p/modwsgi/wiki/VirtualEnvironments>`_.
 
 * `virtualenv commands
   <http://thisismedium.com/tech/extending-virtualenv/>`_ for some more
   workflow-related tools around virtualenv.
-
-Status and License
-------------------
-
-``virtualenv`` is a successor to `workingenv
-<http://cheeseshop.python.org/pypi/workingenv.py>`_, and an extension
-of `virtual-python
-<http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python>`_.
-
-It was written by Ian Bicking, sponsored by the `Open Planning
-Project <http://openplans.org>`_ and is now maintained by a
-`group of developers <https://github.com/pypa/virtualenv/raw/master/AUTHORS.txt>`_.
-It is licensed under an
-`MIT-style permissive license <https://github.com/pypa/virtualenv/raw/master/LICENSE.txt>`_.
new file mode 100644
--- /dev/null
+++ b/other-licenses/virtualenv/docs/license.txt
@@ -0,0 +1,23 @@
+License
+=======
+
+Copyright (c) 2007 Ian Bicking and Contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--- a/other-licenses/virtualenv/docs/news.txt
+++ b/other-licenses/virtualenv/docs/news.txt
@@ -1,192 +1,27 @@
 Changes & News
 --------------
 
-1.7.1.2 (2012-02-17)
-~~~~~~~~~~~~~~~~~~~~
-
-* Fixed minor issue in `--relocatable`. Thanks, Cap Petschulat.
-
-1.7.1.1 (2012-02-16)
-~~~~~~~~~~~~~~~~~~~~
-
-* Bumped the version string in ``virtualenv.py`` up, too.
-
-* Fixed rST rendering bug of long description.
-
-1.7.1 (2012-02-16)
-~~~~~~~~~~~~~~~~~~
-
-* Update embedded pip to version 1.1.
-
-* Fix `--relocatable` under Python 3. Thanks Doug Hellmann.
-
-* Added environ PATH modification to activate_this.py. Thanks Doug
-  Napoleone. Fixes #14.
-
-* Support creating virtualenvs directly from a Python build directory on
-  Windows. Thanks CBWhiz. Fixes #139.
-
-* Use non-recursive symlinks to fix things up for posix_local install
-  scheme. Thanks michr.
-
-* Made activate script available for use with msys and cygwin on Windows.
-  Thanks Greg Haskins, Cliff Xuan, Jonathan Griffin and Doug Napoleone.
-  Fixes #176.
-
-* Fixed creation of virtualenvs on Windows when Python is not installed for
-  all users. Thanks Anatoly Techtonik for report and patch and Doug
-  Napoleone for testing and confirmation. Fixes #87.
-
-* Fixed creation of virtualenvs using -p in installs where some modules
-  that ought to be in the standard library (e.g. `readline`) are actually
-  installed in `site-packages` next to `virtualenv.py`. Thanks Greg Haskins
-  for report and fix. Fixes #167.
-
-* Added activation script for Powershell (signed by Jannis Leidel). Many
-  thanks to Jason R. Coombs.
-
-1.7 (2011-11-30)
-~~~~~~~~~~~~~~~~
-
-* Gave user-provided ``--extra-search-dir`` priority over default dirs for
-  finding setuptools/distribute (it already had priority for finding pip).
-  Thanks Ethan Jucovy.
-
-* Updated embedded Distribute release to 0.6.24. Thanks Alex Gronholm.
-
-* Made ``--no-site-packages`` behavior the default behavior.  The
-  ``--no-site-packages`` flag is still permitted, but displays a warning when
-  used. Thanks Chris McDonough.
-
-* New flag: ``--system-site-packages``; this flag should be passed to get the
-  previous default global-site-package-including behavior back.
-
-* Added ability to set command options as environment variables and options
-  in a ``virtualenv.ini`` file.
-
-* Fixed various encoding related issues with paths. Thanks Gunnlaugur Thor Briem.
-
-* Made ``virtualenv.py`` script executable.
-
-1.6.4 (2011-07-21)
-~~~~~~~~~~~~~~~~~~
-
-* Restored ability to run on Python 2.4, too.
-
-1.6.3 (2011-07-16)
-~~~~~~~~~~~~~~~~~~
-
-* Restored ability to run on Python < 2.7.
-
-1.6.2 (2011-07-16)
-~~~~~~~~~~~~~~~~~~
-
-* Updated embedded distribute release to 0.6.19.
-
-* Updated embedded pip release to 1.0.2.
-
-* Fixed #141 - Be smarter about finding pkg_resources when using the
-  non-default Python intepreter (by using the ``-p`` option).
-
-* Fixed #112 - Fixed path in docs.
-
-* Fixed #109 - Corrected doctests of a Logger method.
-
-* Fixed #118 - Fixed creating virtualenvs on platforms that use the
-  "posix_local" install scheme, such as Ubuntu with Python 2.7.
-
-* Add missing library to Python 3 virtualenvs (``_dummy_thread``).
-
-
-1.6.1 (2011-04-30)
-~~~~~~~~~~~~~~~~~~
-
-* Start to use git-flow.
-
-* Added support for PyPy 1.5
-
-* Fixed #121 -- added sanity-checking of the -p argument. Thanks Paul Nasrat.
-
-* Added progress meter for pip installation as well as setuptools. Thanks Ethan
-  Jucovy.
-
-* Added --never-download and --search-dir options. Thanks Ethan Jucovy.
-
-1.6
-~~~
-
-* Added Python 3 support! Huge thanks to Vinay Sajip and Vitaly Babiy.
-
-* Fixed creation of virtualenvs on Mac OS X when standard library modules
-  (readline) are installed outside the standard library.
-
-* Updated bundled pip to 1.0.
-
-1.5.2
-~~~~~
-
-* Moved main repository to Github: https://github.com/pypa/virtualenv
-
-* Transferred primary maintenance from Ian to Jannis Leidel, Carl Meyer and Brian Rosner
-
-* Fixed a few more pypy related bugs.
-
-* Updated bundled pip to 0.8.2.
-
-* Handed project over to new team of maintainers.
-
-* Moved virtualenv to Github at https://github.com/pypa/virtualenv
-
-1.5.1
-~~~~~
-
-* Added ``_weakrefset`` requirement for Python 2.7.1.
-
-* Fixed Windows regression in 1.5
-
-1.5
-~~~
-
-* Include pip 0.8.1.
-
-* Add support for PyPy.
-
-* Uses a proper temporary dir when installing environment requirements.
-
-* Add ``--prompt`` option to be able to override the default prompt prefix.
-
-* Fix an issue with ``--relocatable`` on Windows.
-
-* Fix issue with installing the wrong version of distribute.
-
-* Add fish and csh activate scripts.
-
-1.4.9
-~~~~~
-
-* Include pip 0.7.2
-
 1.4.8
-~~~~~
+-----
 
 * Fix for Mac OS X Framework builds that use
   ``--universal-archs=intel``
 
 * Fix ``activate_this.py`` on Windows.
 
 * Allow ``$PYTHONHOME`` to be set, so long as you use ``source
   bin/activate`` it will get unset; if you leave it set and do not
   activate the environment it will still break the environment.
 
 * Include pip 0.7.1
 
 1.4.7
-~~~~~
+-----
 
 * Include pip 0.7
 
 1.4.6
 ~~~~~
 
 * Allow ``activate.sh`` to skip updating the prompt (by setting
   ``$VIRTUAL_ENV_DISABLE_PROMPT``).
--- a/other-licenses/virtualenv/setup.py
+++ b/other-licenses/virtualenv/setup.py
@@ -2,57 +2,67 @@ import sys, os
 try:
     from setuptools import setup
     kw = {'entry_points':
           """[console_scripts]\nvirtualenv = virtualenv:main\n""",
           'zip_safe': False}
 except ImportError:
     from distutils.core import setup
     if sys.platform == 'win32':
-        print('Note: without Setuptools installed you will have to use "python -m virtualenv ENV"')
-        kw = {}
+        print 'Note: without Setuptools installed you will have to use "python -m virtualenv ENV"'
     else:
         kw = {'scripts': ['scripts/virtualenv']}
+import re
 
 here = os.path.dirname(os.path.abspath(__file__))
 
+## Figure out the version from virtualenv.py:
+version_re = re.compile(
+    r'virtualenv_version = "(.*?)"')
+fp = open(os.path.join(here, 'virtualenv.py'))
+version = None
+for line in fp:
+    match = version_re.search(line)
+    if match:
+        version = match.group(1)
+        break
+else:
+    raise Exception("Cannot find version in virtualenv.py")
+fp.close()
+
 ## Get long_description from index.txt:
 f = open(os.path.join(here, 'docs', 'index.txt'))
 long_description = f.read().strip()
 long_description = long_description.split('split here', 1)[1]
 f.close()
-f = open(os.path.join(here, 'docs', 'news.txt'))
-long_description += "\n\n" + f.read()
-f.close()
+
+## A warning just for Ian (related to distribution):
+try:
+    import getpass
+except ImportError:
+    is_ianb = False
+else:
+    is_ianb = getpass.getuser() == 'ianb'
+
+if is_ianb and 'register' in sys.argv:
+    if 'hg tip\n~~~~~~' in long_description:
+        print >> sys.stderr, (
+            "WARNING: hg tip is in index.txt")
 
 setup(name='virtualenv',
-      # If you change the version here, change it in virtualenv.py and
-      # docs/conf.py as well
-      version="1.7.1.2",
+      version=version,
       description="Virtual Python Environment builder",
       long_description=long_description,
       classifiers=[
         'Development Status :: 4 - Beta',
         'Intended Audience :: Developers',
         'License :: OSI Approved :: MIT License',
-        'Programming Language :: Python :: 2',
-        'Programming Language :: Python :: 2.4',
-        'Programming Language :: Python :: 2.5',
-        'Programming Language :: Python :: 2.6',
-        'Programming Language :: Python :: 2.7',
-        'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.1',
-        'Programming Language :: Python :: 3.2',
-        ],
+      ],
       keywords='setuptools deployment installation distutils',
       author='Ian Bicking',
       author_email='ianb@colorstudy.com',
-      maintainer='Jannis Leidel, Carl Meyer and Brian Rosner',
-      maintainer_email='python-virtualenv@groups.google.com',
-      url='http://www.virtualenv.org',
+      url='http://virtualenv.openplans.org',
       license='MIT',
       py_modules=['virtualenv'],
       packages=['virtualenv_support'],
       package_data={'virtualenv_support': ['*-py%s.egg' % sys.version[:3], '*.tar.gz']},
-      test_suite='nose.collector',
-      tests_require=['nose', 'Mock'],
       **kw
       )
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv.egg-info/PKG-INFO
+++ /dev/null
@@ -1,1022 +0,0 @@
-Metadata-Version: 1.0
-Name: virtualenv
-Version: 1.7.1.2
-Summary: Virtual Python Environment builder
-Home-page: http://www.virtualenv.org
-Author: Jannis Leidel, Carl Meyer and Brian Rosner
-Author-email: python-virtualenv@groups.google.com
-License: MIT
-Description: 
-        
-        Installation
-        ------------
-        
-        You can install virtualenv with ``pip install virtualenv``, or the `latest
-        development version <https://github.com/pypa/virtualenv/tarball/develop#egg=virtualenv-dev>`_
-        with ``pip install virtualenv==dev``.
-        
-        You can also use ``easy_install``, or if you have no Python package manager
-        available at all, you can just grab the single file `virtualenv.py`_ and run
-        it with ``python virtualenv.py``.
-        
-        .. _virtualenv.py: https://raw.github.com/pypa/virtualenv/master/virtualenv.py
-        
-        What It Does
-        ------------
-        
-        ``virtualenv`` is a tool to create isolated Python environments.
-        
-        The basic problem being addressed is one of dependencies and versions,
-        and indirectly permissions.  Imagine you have an application that
-        needs version 1 of LibFoo, but another application requires version
-        2.  How can you use both these applications?  If you install
-        everything into ``/usr/lib/python2.7/site-packages`` (or whatever your
-        platform's standard location is), it's easy to end up in a situation
-        where you unintentionally upgrade an application that shouldn't be
-        upgraded.
-        
-        Or more generally, what if you want to install an application *and
-        leave it be*?  If an application works, any change in its libraries or
-        the versions of those libraries can break the application.
-        
-        Also, what if you can't install packages into the global
-        ``site-packages`` directory?  For instance, on a shared host.
-        
-        In all these cases, ``virtualenv`` can help you.  It creates an
-        environment that has its own installation directories, that doesn't
-        share libraries with other virtualenv environments (and optionally
-        doesn't access the globally installed libraries either).
-        
-        The basic usage is::
-        
-            $ python virtualenv.py ENV
-        
-        If you install it you can also just do ``virtualenv ENV``.
-        
-        This creates ``ENV/lib/pythonX.X/site-packages``, where any libraries you
-        install will go.  It also creates ``ENV/bin/python``, which is a Python
-        interpreter that uses this environment.  Anytime you use that interpreter
-        (including when a script has ``#!/path/to/ENV/bin/python`` in it) the libraries
-        in that environment will be used.
-        
-        It also installs either `Setuptools
-        <http://peak.telecommunity.com/DevCenter/setuptools>`_ or `distribute
-        <http://pypi.python.org/pypi/distribute>`_ into the environment. To use
-        Distribute instead of setuptools, just call virtualenv like this::
-        
-            $ python virtualenv.py --distribute ENV
-        
-        You can also set the environment variable VIRTUALENV_USE_DISTRIBUTE.
-        
-        A new virtualenv also includes the `pip <http://pypy.python.org/pypi/pip>`_
-        installer, so you can use ``ENV/bin/pip`` to install additional packages into
-        the environment.
-        
-        Environment variables and configuration files
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        virtualenv can not only be configured by passing command line options such as
-        ``--distribute`` but also by two other means:
-        
-        - Environment variables
-        
-          Each command line option is automatically used to look for environment
-          variables with the name format ``VIRTUALENV_<UPPER_NAME>``. That means
-          the name of the command line options are capitalized and have dashes
-          (``'-'``) replaced with underscores (``'_'``).
-        
-          For example, to automatically install Distribute instead of setuptools
-          you can also set an environment variable::
-        
-              $ export VIRTUALENV_USE_DISTRIBUTE=true
-              $ python virtualenv.py ENV
-        
-          It's the same as passing the option to virtualenv directly::
-        
-              $ python virtualenv.py --distribute ENV
-        
-          This also works for appending command line options, like ``--find-links``.
-          Just leave an empty space between the passsed values, e.g.::
-        
-              $ export VIRTUALENV_EXTRA_SEARCH_DIR="/path/to/dists /path/to/other/dists"
-              $ virtualenv ENV
-        
-          is the same as calling::
-        
-              $ python virtualenv.py --extra-search-dir=/path/to/dists --extra-search-dir=/path/to/other/dists ENV
-        
-        - Config files
-        
-          virtualenv also looks for a standard ini config file. On Unix and Mac OS X
-          that's ``$HOME/.virtualenv/virtualenv.ini`` and on Windows, it's
-          ``%HOME%\\virtualenv\\virtualenv.ini``.
-        
-          The names of the settings are derived from the long command line option,
-          e.g. the option ``--distribute`` would look like this::
-        
-              [virtualenv]
-              distribute = true
-        
-          Appending options like ``--extra-search-dir`` can be written on multiple
-          lines::
-        
-              [virtualenv]
-              extra-search-dir =
-                  /path/to/dists
-                  /path/to/other/dists
-        
-        Please have a look at the output of ``virtualenv --help`` for a full list
-        of supported options.
-        
-        Windows Notes
-        ~~~~~~~~~~~~~
-        
-        Some paths within the virtualenv are slightly different on Windows: scripts and
-        executables on Windows go in ``ENV\Scripts\`` instead of ``ENV/bin/`` and
-        libraries go in ``ENV\Lib\`` rather than ``ENV/lib/``.
-        
-        To create a virtualenv under a path with spaces in it on Windows, you'll need
-        the `win32api <http://sourceforge.net/projects/pywin32/>`_ library installed.
-        
-        PyPy Support
-        ~~~~~~~~~~~~
-        
-        Beginning with virtualenv version 1.5 `PyPy <http://pypy.org>`_ is
-        supported. To use PyPy 1.4 or 1.4.1, you need a version of virtualenv >= 1.5.
-        To use PyPy 1.5, you need a version of virtualenv >= 1.6.1.
-        
-        Creating Your Own Bootstrap Scripts
-        -----------------------------------
-        
-        While this creates an environment, it doesn't put anything into the
-        environment.  Developers may find it useful to distribute a script
-        that sets up a particular environment, for example a script that
-        installs a particular web application.
-        
-        To create a script like this, call
-        ``virtualenv.create_bootstrap_script(extra_text)``, and write the
-        result to your new bootstrapping script.  Here's the documentation
-        from the docstring:
-        
-        Creates a bootstrap script, which is like this script but with
-        extend_parser, adjust_options, and after_install hooks.
-        
-        This returns a string that (written to disk of course) can be used
-        as a bootstrap script with your own customizations.  The script
-        will be the standard virtualenv.py script, with your extra text
-        added (your extra text should be Python code).
-        
-        If you include these functions, they will be called:
-        
-        ``extend_parser(optparse_parser)``:
-            You can add or remove options from the parser here.
-        
-        ``adjust_options(options, args)``:
-            You can change options here, or change the args (if you accept
-            different kinds of arguments, be sure you modify ``args`` so it is
-            only ``[DEST_DIR]``).
-        
-        ``after_install(options, home_dir)``:
-        
-            After everything is installed, this function is called.  This
-            is probably the function you are most likely to use.  An
-            example would be::
-        
-                def after_install(options, home_dir):
-                    if sys.platform == 'win32':
-                        bin = 'Scripts'
-                    else:
-                        bin = 'bin'
-                    subprocess.call([join(home_dir, bin, 'easy_install'),
-                                     'MyPackage'])
-                    subprocess.call([join(home_dir, bin, 'my-package-script'),
-                                     'setup', home_dir])
-        
-            This example immediately installs a package, and runs a setup
-            script from that package.
-        
-        Bootstrap Example
-        ~~~~~~~~~~~~~~~~~
-        
-        Here's a more concrete example of how you could use this::
-        
-            import virtualenv, textwrap
-            output = virtualenv.create_bootstrap_script(textwrap.dedent("""
-            import os, subprocess
-            def after_install(options, home_dir):
-                etc = join(home_dir, 'etc')
-                if not os.path.exists(etc):
-                    os.makedirs(etc)
-                subprocess.call([join(home_dir, 'bin', 'easy_install'),
-                                 'BlogApplication'])
-                subprocess.call([join(home_dir, 'bin', 'paster'),
-                                 'make-config', 'BlogApplication',
-                                 join(etc, 'blog.ini')])
-                subprocess.call([join(home_dir, 'bin', 'paster'),
-                                 'setup-app', join(etc, 'blog.ini')])
-            """))
-            f = open('blog-bootstrap.py', 'w').write(output)
-        
-        Another example is available `here
-        <https://github.com/socialplanning/fassembler/blob/master/fassembler/create-venv-script.py>`_.
-        
-        activate script
-        ~~~~~~~~~~~~~~~
-        
-        In a newly created virtualenv there will be a ``bin/activate`` shell
-        script. For Windows systems, activation scripts are provided for CMD.exe
-        and Powershell.
-        
-        On Posix systems you can do::
-        
-            $ source bin/activate
-        
-        This will change your ``$PATH`` to point to the virtualenv's ``bin/``
-        directory.  (You have to use ``source`` because it changes your shell
-        environment in-place.) This is all it does; it's purely a convenience.  If
-        you directly run a script or the python interpreter from the virtualenv's
-        ``bin/`` directory (e.g.  ``path/to/env/bin/pip`` or
-        ``/path/to/env/bin/python script.py``) there's no need for activation.
-        
-        After activating an environment you can use the function ``deactivate`` to
-        undo the changes to your ``$PATH``.
-        
-        The ``activate`` script will also modify your shell prompt to indicate
-        which environment is currently active.  You can disable this behavior,
-        which can be useful if you have your own custom prompt that already
-        displays the active environment name.  To do so, set the
-        ``VIRTUAL_ENV_DISABLE_PROMPT`` environment variable to any non-empty
-        value before running the ``activate`` script.
-        
-        On Windows you just do::
-        
-            > \path\to\env\Scripts\activate
-        
-        And type `deactivate` to undo the changes.
-        
-        Based on your active shell (CMD.exe or Powershell.exe), Windows will use
-        either activate.bat or activate.ps1 (as appropriate) to activate the
-        virtual environment. If using Powershell, see the notes about code signing
-        below.
-        
-        .. note::
-        
-            If using Powershell, the ``activate`` script is subject to the
-            `execution policies`_ on the system. By default on Windows 7, the system's
-            excution policy is set to ``Restricted``, meaning no scripts like the
-            ``activate`` script are allowed to be executed. But that can't stop us
-            from changing that slightly to allow it to be executed.
-        
-            In order to use the script, you have to relax your system's execution
-            policy to ``AllSigned``, meaning all scripts on the system must be
-            digitally signed to be executed. Since the virtualenv activation
-            script is signed by one of the authors (Jannis Leidel) this level of
-            the execution policy suffices. As an adminstrator run::
-        
-                PS C:\> Set-ExecutionPolicy AllSigned
-        
-            Then you'll be asked to trust the signer, when executing the script.
-            You will be prompted with the following::
-        
-                PS C:\> virtualenv .\foo
-                New python executable in C:\foo\Scripts\python.exe
-                Installing setuptools................done.
-                Installing pip...................done.
-                PS C:\> .\foo\scripts\activate
-        
-                Do you want to run software from this untrusted publisher?
-                File C:\foo\scripts\activate.ps1 is published by E=jannis@leidel.info,
-                CN=Jannis Leidel, L=Berlin, S=Berlin, C=DE, Description=581796-Gh7xfJxkxQSIO4E0
-                and is not trusted on your system. Only run scripts from trusted publishers.
-                [V] Never run  [D] Do not run  [R] Run once  [A] Always run  [?] Help
-                (default is "D"):A
-                (foo) PS C:\>
-        
-            If you select ``[A] Always Run``, the certificate will be added to the
-            Trusted Publishers of your user account, and will be trusted in this
-            user's context henceforth. If you select ``[R] Run Once``, the script will
-            be run, but you will be prometed on a subsequent invocation. Advanced users
-            can add the signer's certificate to the Trusted Publishers of the Computer
-            account to apply to all users (though this technique is out of scope of this
-            document).
-        
-            Alternatively, you may relax the system execution policy to allow running
-            of local scripts without verifying the code signature using the following::
-        
-                PS C:\> Set-ExecutionPolicy RemoteSigned
-        
-            Since the ``activate.ps1`` script is generated locally for each virtualenv,
-            it is not considered a remote script and can then be executed.
-        
-        .. _`execution policies`: http://technet.microsoft.com/en-us/library/dd347641.aspx
-        
-        The ``--system-site-packages`` Option
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        If you build with ``virtualenv --system-site-packages ENV``, your virtual
-        environment will inherit packages from ``/usr/lib/python2.7/site-packages``
-        (or wherever your global site-packages directory is).
-        
-        This can be used if you have control over the global site-packages directory,
-        and you want to depend on the packages there.  If you want isolation from the
-        global system, do not use this flag.
-        
-        Using Virtualenv without ``bin/python``
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        Sometimes you can't or don't want to use the Python interpreter
-        created by the virtualenv.  For instance, in a `mod_python
-        <http://www.modpython.org/>`_ or `mod_wsgi <http://www.modwsgi.org/>`_
-        environment, there is only one interpreter.
-        
-        Luckily, it's easy.  You must use the custom Python interpreter to
-        *install* libraries.  But to *use* libraries, you just have to be sure
-        the path is correct.  A script is available to correct the path.  You
-        can setup the environment like::
-        
-            activate_this = '/path/to/env/bin/activate_this.py'
-            execfile(activate_this, dict(__file__=activate_this))
-        
-        This will change ``sys.path`` and even change ``sys.prefix``, but also allow
-        you to use an existing interpreter.  Items in your environment will show up
-        first on ``sys.path``, before global items.  However, global items will
-        always be accessible (as if the ``--system-site-packages`` flag had been used
-        in creating the environment, whether it was or not).  Also, this cannot undo
-        the activation of other environments, or modules that have been imported.
-        You shouldn't try to, for instance, activate an environment before a web
-        request; you should activate *one* environment as early as possible, and not
-        do it again in that process.
-        
-        Making Environments Relocatable
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        Note: this option is somewhat experimental, and there are probably
-        caveats that have not yet been identified.  Also this does not
-        currently work on Windows.
-        
-        Normally environments are tied to a specific path.  That means that
-        you cannot move an environment around or copy it to another computer.
-        You can fix up an environment to make it relocatable with the
-        command::
-        
-            $ virtualenv --relocatable ENV
-        
-        This will make some of the files created by setuptools or distribute
-        use relative paths, and will change all the scripts to use ``activate_this.py``
-        instead of using the location of the Python interpreter to select the
-        environment.
-        
-        **Note:** you must run this after you've installed *any* packages into
-        the environment.  If you make an environment relocatable, then
-        install a new package, you must run ``virtualenv --relocatable``
-        again.
-        
-        Also, this **does not make your packages cross-platform**.  You can
-        move the directory around, but it can only be used on other similar
-        computers.  Some known environmental differences that can cause
-        incompatibilities: a different version of Python, when one platform
-        uses UCS2 for its internal unicode representation and another uses
-        UCS4 (a compile-time option), obvious platform changes like Windows
-        vs. Linux, or Intel vs. ARM, and if you have libraries that bind to C
-        libraries on the system, if those C libraries are located somewhere
-        different (either different versions, or a different filesystem
-        layout).
-        
-        If you use this flag to create an environment, currently, the
-        ``--system-site-packages`` option will be implied.
-        
-        The ``--extra-search-dir`` Option
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        When it creates a new environment, virtualenv installs either
-        setuptools or distribute, and pip.  In normal operation, the latest
-        releases of these packages are fetched from the `Python Package Index
-        <http://pypi.python.org>`_ (PyPI). In some circumstances, this
-        behavior may not be wanted, for example if you are using virtualenv
-        during a deployment and do not want to depend on Internet access and
-        PyPI availability.
-        
-        As an alternative, you can provide your own versions of setuptools,
-        distribute and/or pip on the filesystem, and tell virtualenv to use
-        those distributions instead of downloading them from the Internet.  To
-        use this feature, pass one or more ``--extra-search-dir`` options to
-        virtualenv like this::
-        
-            $ virtualenv --extra-search-dir=/path/to/distributions ENV
-        
-        The ``/path/to/distributions`` path should point to a directory that
-        contains setuptools, distribute and/or pip distributions.  Setuptools
-        distributions must be ``.egg`` files; distribute and pip distributions
-        should be `.tar.gz` source distributions.
-        
-        Virtualenv will still download these packages if no satisfactory local
-        distributions are found.
-        
-        If you are really concerned about virtualenv fetching these packages
-        from the Internet and want to ensure that it never will, you can also
-        provide an option ``--never-download`` like so::
-        
-            $ virtualenv --extra-search-dir=/path/to/distributions --never-download ENV
-        
-        If this option is provided, virtualenv will never try to download
-        setuptools/distribute or pip. Instead, it will exit with status code 1
-        if it fails to find local distributions for any of these required
-        packages. The local distribution lookup is done in this order and the
-        following locations:
-        
-            #. The current directory.
-            #. The directory where virtualenv.py is located.
-            #. A ``virtualenv_support`` directory relative to the directory where
-               virtualenv.py is located.
-            #. If the file being executed is not named virtualenv.py (i.e. is a boot
-               script), a ``virtualenv_support`` directory relative to wherever
-               virtualenv.py is actually installed.
-        
-        Compare & Contrast with Alternatives
-        ------------------------------------
-        
-        There are several alternatives that create isolated environments:
-        
-        * ``workingenv`` (which I do not suggest you use anymore) is the
-          predecessor to this library.  It used the main Python interpreter,
-          but relied on setting ``$PYTHONPATH`` to activate the environment.
-          This causes problems when running Python scripts that aren't part of
-          the environment (e.g., a globally installed ``hg`` or ``bzr``).  It
-          also conflicted a lot with Setuptools.
-        
-        * `virtual-python
-          <http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python>`_
-          is also a predecessor to this library.  It uses only symlinks, so it
-          couldn't work on Windows.  It also symlinks over the *entire*
-          standard library and global ``site-packages``.  As a result, it
-          won't see new additions to the global ``site-packages``.
-        
-          This script only symlinks a small portion of the standard library
-          into the environment, and so on Windows it is feasible to simply
-          copy these files over.  Also, it creates a new/empty
-          ``site-packages`` and also adds the global ``site-packages`` to the
-          path, so updates are tracked separately.  This script also installs
-          Setuptools automatically, saving a step and avoiding the need for
-          network access.
-        
-        * `zc.buildout <http://pypi.python.org/pypi/zc.buildout>`_ doesn't
-          create an isolated Python environment in the same style, but
-          achieves similar results through a declarative config file that sets
-          up scripts with very particular packages.  As a declarative system,
-          it is somewhat easier to repeat and manage, but more difficult to
-          experiment with.  ``zc.buildout`` includes the ability to setup
-          non-Python systems (e.g., a database server or an Apache instance).
-        
-        I *strongly* recommend anyone doing application development or
-        deployment use one of these tools.
-        
-        Contributing
-        ------------
-        
-        Refer to the `contributing to pip`_ documentation - it applies equally to
-        virtualenv.
-        
-        Virtualenv's release schedule is tied to pip's -- each time there's a new pip
-        release, there will be a new virtualenv release that bundles the new version of
-        pip.
-        
-        .. _contributing to pip: http://www.pip-installer.org/en/latest/contributing.html
-        
-        Running the tests
-        ~~~~~~~~~~~~~~~~~
-        
-        Virtualenv's test suite is small and not yet at all comprehensive, but we aim
-        to grow it.
-        
-        The easy way to run tests (handles test dependencies automatically)::
-        
-            $ python setup.py test
-        
-        If you want to run only a selection of the tests, you'll need to run them
-        directly with nose instead. Create a virtualenv, and install required
-        packages::
-        
-            $ pip install nose mock
-        
-        Run nosetests::
-        
-            $ nosetests
-        
-        Or select just a single test file to run::
-        
-            $ nosetests tests.test_virtualenv
-        
-        
-        Other Documentation and Links
-        -----------------------------
-        
-        * James Gardner has written a tutorial on using `virtualenv with
-          Pylons
-          <http://wiki.pylonshq.com/display/pylonscookbook/Using+a+Virtualenv+Sandbox>`_.
-        
-        * `Blog announcement
-          <http://blog.ianbicking.org/2007/10/10/workingenv-is-dead-long-live-virtualenv/>`_.
-        
-        * Doug Hellmann wrote a description of his `command-line work flow
-          using virtualenv (virtualenvwrapper)
-          <http://www.doughellmann.com/articles/CompletelyDifferent-2008-05-virtualenvwrapper/index.html>`_
-          including some handy scripts to make working with multiple
-          environments easier.  He also wrote `an example of using virtualenv
-          to try IPython
-          <http://www.doughellmann.com/articles/CompletelyDifferent-2008-02-ipython-and-virtualenv/index.html>`_.
-        
-        * Chris Perkins created a `showmedo video including virtualenv
-          <http://showmedo.com/videos/video?name=2910000&fromSeriesID=291>`_.
-        
-        * `Using virtualenv with mod_wsgi
-          <http://code.google.com/p/modwsgi/wiki/VirtualEnvironments>`_.
-        
-        * `virtualenv commands
-          <http://thisismedium.com/tech/extending-virtualenv/>`_ for some more
-          workflow-related tools around virtualenv.
-        
-        Status and License
-        ------------------
-        
-        ``virtualenv`` is a successor to `workingenv
-        <http://cheeseshop.python.org/pypi/workingenv.py>`_, and an extension
-        of `virtual-python
-        <http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python>`_.
-        
-        It was written by Ian Bicking, sponsored by the `Open Planning
-        Project <http://openplans.org>`_ and is now maintained by a
-        `group of developers <https://github.com/pypa/virtualenv/raw/master/AUTHORS.txt>`_.
-        It is licensed under an
-        `MIT-style permissive license <https://github.com/pypa/virtualenv/raw/master/LICENSE.txt>`_.
-        
-        Changes & News
-        --------------
-        
-        1.7.1.2 (2012-02-17)
-        ~~~~~~~~~~~~~~~~~~~~
-        
-        * Fixed minor issue in `--relocatable`. Thanks, Cap Petschulat.
-        
-        1.7.1.1 (2012-02-16)
-        ~~~~~~~~~~~~~~~~~~~~
-        
-        * Bumped the version string in ``virtualenv.py`` up, too.
-        
-        * Fixed rST rendering bug of long description.
-        
-        1.7.1 (2012-02-16)
-        ~~~~~~~~~~~~~~~~~~
-        
-        * Update embedded pip to version 1.1.
-        
-        * Fix `--relocatable` under Python 3. Thanks Doug Hellmann.
-        
-        * Added environ PATH modification to activate_this.py. Thanks Doug
-          Napoleone. Fixes #14.
-        
-        * Support creating virtualenvs directly from a Python build directory on
-          Windows. Thanks CBWhiz. Fixes #139.
-        
-        * Use non-recursive symlinks to fix things up for posix_local install
-          scheme. Thanks michr.
-        
-        * Made activate script available for use with msys and cygwin on Windows.
-          Thanks Greg Haskins, Cliff Xuan, Jonathan Griffin and Doug Napoleone.
-          Fixes #176.
-        
-        * Fixed creation of virtualenvs on Windows when Python is not installed for
-          all users. Thanks Anatoly Techtonik for report and patch and Doug
-          Napoleone for testing and confirmation. Fixes #87.
-        
-        * Fixed creation of virtualenvs using -p in installs where some modules
-          that ought to be in the standard library (e.g. `readline`) are actually
-          installed in `site-packages` next to `virtualenv.py`. Thanks Greg Haskins
-          for report and fix. Fixes #167.
-        
-        * Added activation script for Powershell (signed by Jannis Leidel). Many
-          thanks to Jason R. Coombs.
-        
-        1.7 (2011-11-30)
-        ~~~~~~~~~~~~~~~~
-        
-        * Gave user-provided ``--extra-search-dir`` priority over default dirs for
-          finding setuptools/distribute (it already had priority for finding pip).
-          Thanks Ethan Jucovy.
-        
-        * Updated embedded Distribute release to 0.6.24. Thanks Alex Gronholm.
-        
-        * Made ``--no-site-packages`` behavior the default behavior.  The
-          ``--no-site-packages`` flag is still permitted, but displays a warning when
-          used. Thanks Chris McDonough.
-        
-        * New flag: ``--system-site-packages``; this flag should be passed to get the
-          previous default global-site-package-including behavior back.
-        
-        * Added ability to set command options as environment variables and options
-          in a ``virtualenv.ini`` file.
-        
-        * Fixed various encoding related issues with paths. Thanks Gunnlaugur Thor Briem.
-        
-        * Made ``virtualenv.py`` script executable.
-        
-        1.6.4 (2011-07-21)
-        ~~~~~~~~~~~~~~~~~~
-        
-        * Restored ability to run on Python 2.4, too.
-        
-        1.6.3 (2011-07-16)
-        ~~~~~~~~~~~~~~~~~~
-        
-        * Restored ability to run on Python < 2.7.
-        
-        1.6.2 (2011-07-16)
-        ~~~~~~~~~~~~~~~~~~
-        
-        * Updated embedded distribute release to 0.6.19.
-        
-        * Updated embedded pip release to 1.0.2.
-        
-        * Fixed #141 - Be smarter about finding pkg_resources when using the
-          non-default Python intepreter (by using the ``-p`` option).
-        
-        * Fixed #112 - Fixed path in docs.
-        
-        * Fixed #109 - Corrected doctests of a Logger method.
-        
-        * Fixed #118 - Fixed creating virtualenvs on platforms that use the
-          "posix_local" install scheme, such as Ubuntu with Python 2.7.
-        
-        * Add missing library to Python 3 virtualenvs (``_dummy_thread``).
-        
-        
-        1.6.1 (2011-04-30)
-        ~~~~~~~~~~~~~~~~~~
-        
-        * Start to use git-flow.
-        
-        * Added support for PyPy 1.5
-        
-        * Fixed #121 -- added sanity-checking of the -p argument. Thanks Paul Nasrat.
-        
-        * Added progress meter for pip installation as well as setuptools. Thanks Ethan
-          Jucovy.
-        
-        * Added --never-download and --search-dir options. Thanks Ethan Jucovy.
-        
-        1.6
-        ~~~
-        
-        * Added Python 3 support! Huge thanks to Vinay Sajip and Vitaly Babiy.
-        
-        * Fixed creation of virtualenvs on Mac OS X when standard library modules
-          (readline) are installed outside the standard library.
-        
-        * Updated bundled pip to 1.0.
-        
-        1.5.2
-        ~~~~~
-        
-        * Moved main repository to Github: https://github.com/pypa/virtualenv
-        
-        * Transferred primary maintenance from Ian to Jannis Leidel, Carl Meyer and Brian Rosner
-        
-        * Fixed a few more pypy related bugs.
-        
-        * Updated bundled pip to 0.8.2.
-        
-        * Handed project over to new team of maintainers.
-        
-        * Moved virtualenv to Github at https://github.com/pypa/virtualenv
-        
-        1.5.1
-        ~~~~~
-        
-        * Added ``_weakrefset`` requirement for Python 2.7.1.
-        
-        * Fixed Windows regression in 1.5
-        
-        1.5
-        ~~~
-        
-        * Include pip 0.8.1.
-        
-        * Add support for PyPy.
-        
-        * Uses a proper temporary dir when installing environment requirements.
-        
-        * Add ``--prompt`` option to be able to override the default prompt prefix.
-        
-        * Fix an issue with ``--relocatable`` on Windows.
-        
-        * Fix issue with installing the wrong version of distribute.
-        
-        * Add fish and csh activate scripts.
-        
-        1.4.9
-        ~~~~~
-        
-        * Include pip 0.7.2
-        
-        1.4.8
-        ~~~~~
-        
-        * Fix for Mac OS X Framework builds that use
-          ``--universal-archs=intel``
-        
-        * Fix ``activate_this.py`` on Windows.
-        
-        * Allow ``$PYTHONHOME`` to be set, so long as you use ``source
-          bin/activate`` it will get unset; if you leave it set and do not
-          activate the environment it will still break the environment.
-        
-        * Include pip 0.7.1
-        
-        1.4.7
-        ~~~~~
-        
-        * Include pip 0.7
-        
-        1.4.6
-        ~~~~~
-        
-        * Allow ``activate.sh`` to skip updating the prompt (by setting
-          ``$VIRTUAL_ENV_DISABLE_PROMPT``).
-        
-        1.4.5
-        ~~~~~
-        
-        * Include pip 0.6.3
-        
-        * Fix ``activate.bat`` and ``deactivate.bat`` under Windows when
-          ``PATH`` contained a parenthesis
-        
-        1.4.4
-        ~~~~~
-        
-        * Include pip 0.6.2 and Distribute 0.6.10
-        
-        * Create the ``virtualenv`` script even when Setuptools isn't
-          installed
-        
-        * Fix problem with ``virtualenv --relocate`` when ``bin/`` has
-          subdirectories (e.g., ``bin/.svn/``); from Alan Franzoni.
-        
-        * If you set ``$VIRTUALENV_USE_DISTRIBUTE`` then virtualenv will use
-          Distribute by default (so you don't have to remember to use
-          ``--distribute``).
-        
-        1.4.3
-        ~~~~~
-        
-        * Include pip 0.6.1
-        
-        1.4.2
-        ~~~~~
-        
-        * Fix pip installation on Windows
-        
-        * Fix use of stand-alone ``virtualenv.py`` (and boot scripts)
-        
-        * Exclude ~/.local (user site-packages) from environments when using
-          ``--no-site-packages``
-        
-        1.4.1
-        ~~~~~
-        
-        * Include pip 0.6
-        
-        1.4
-        ~~~
-        
-        * Updated setuptools to 0.6c11
-        
-        * Added the --distribute option
-        
-        * Fixed packaging problem of support-files
-        
-        1.3.4
-        ~~~~~
-        
-        * Virtualenv now copies the actual embedded Python binary on
-          Mac OS X to fix a hang on Snow Leopard (10.6).
-        
-        * Fail more gracefully on Windows when ``win32api`` is not installed.
-        
-        * Fix site-packages taking precedent over Jython's ``__classpath__``
-          and also specially handle the new ``__pyclasspath__`` entry in
-          ``sys.path``.
-        
-        * Now copies Jython's ``registry`` file to the virtualenv if it exists.
-        
-        * Better find libraries when compiling extensions on Windows.
-        
-        * Create ``Scripts\pythonw.exe`` on Windows.
-        
-        * Added support for the Debian/Ubuntu
-          ``/usr/lib/pythonX.Y/dist-packages`` directory.
-        
-        * Set ``distutils.sysconfig.get_config_vars()['LIBDIR']`` (based on
-          ``sys.real_prefix``) which is reported to help building on Windows.
-        
-        * Make ``deactivate`` work on ksh
-        
-        * Fixes for ``--python``: make it work with ``--relocatable`` and the
-          symlink created to the exact Python version.
-        
-        1.3.3
-        ~~~~~
-        
-        * Use Windows newlines in ``activate.bat``, which has been reported to help
-          when using non-ASCII directory names.
-        
-        * Fixed compatibility with Jython 2.5b1.
-        
-        * Added a function ``virtualenv.install_python`` for more fine-grained
-          access to what ``virtualenv.create_environment`` does.
-        
-        * Fix `a problem <https://bugs.launchpad.net/virtualenv/+bug/241581>`_
-          with Windows and paths that contain spaces.
-        
-        * If ``/path/to/env/.pydistutils.cfg`` exists (or
-          ``/path/to/env/pydistutils.cfg`` on Windows systems) then ignore
-          ``~/.pydistutils.cfg`` and use that other file instead.
-        
-        * Fix ` a problem
-          <https://bugs.launchpad.net/virtualenv/+bug/340050>`_ picking up
-          some ``.so`` libraries in ``/usr/local``.
-        
-        1.3.2
-        ~~~~~
-        
-        * Remove the ``[install] prefix = ...`` setting from the virtualenv
-          ``distutils.cfg`` -- this has been causing problems for a lot of
-          people, in rather obscure ways.
-        
-        * If you use a `boot script <./index.html#boot-script>`_ it will attempt to import ``virtualenv``
-          and find a pre-downloaded Setuptools egg using that.
-        
-        * Added platform-specific paths, like ``/usr/lib/pythonX.Y/plat-linux2``
-        
-        1.3.1
-        ~~~~~
-        
-        * Real Python 2.6 compatibility.  Backported the Python 2.6 updates to
-          ``site.py``, including `user directories
-          <http://docs.python.org/dev/whatsnew/2.6.html#pep-370-per-user-site-packages-directory>`_
-          (this means older versions of Python will support user directories,
-          whether intended or not).
-        
-        * Always set ``[install] prefix`` in ``distutils.cfg`` -- previously
-          on some platforms where a system-wide ``distutils.cfg`` was present
-          with a ``prefix`` setting, packages would be installed globally
-          (usually in ``/usr/local/lib/pythonX.Y/site-packages``).
-        
-        * Sometimes Cygwin seems to leave ``.exe`` off ``sys.executable``; a
-          workaround is added.
-        
-        * Fix ``--python`` option.
-        
-        * Fixed handling of Jython environments that use a
-          jython-complete.jar.
-        
-        1.3
-        ~~~
-        
-        * Update to Setuptools 0.6c9
-        * Added an option ``virtualenv --relocatable EXISTING_ENV``, which
-          will make an existing environment "relocatable" -- the paths will
-          not be absolute in scripts, ``.egg-info`` and ``.pth`` files.  This
-          may assist in building environments that can be moved and copied.
-          You have to run this *after* any new packages installed.
-        * Added ``bin/activate_this.py``, a file you can use like
-          ``execfile("path_to/activate_this.py",
-          dict(__file__="path_to/activate_this.py"))`` -- this will activate
-          the environment in place, similar to what `the mod_wsgi example
-          does <http://code.google.com/p/modwsgi/wiki/VirtualEnvironments>`_.
-        * For Mac framework builds of Python, the site-packages directory
-          ``/Library/Python/X.Y/site-packages`` is added to ``sys.path``, from
-          Andrea Rech.
-        * Some platform-specific modules in Macs are added to the path now
-          (``plat-darwin/``, ``plat-mac/``, ``plat-mac/lib-scriptpackages``),
-          from Andrea Rech.
-        * Fixed a small Bashism in the ``bin/activate`` shell script.
-        * Added ``__future__`` to the list of required modules, for Python
-          2.3.  You'll still need to backport your own ``subprocess`` module.
-        * Fixed the ``__classpath__`` entry in Jython's ``sys.path`` taking
-          precedent over virtualenv's libs.
-        
-        1.2
-        ~~~
-        
-        * Added a ``--python`` option to select the Python interpreter.
-        * Add ``warnings`` to the modules copied over, for Python 2.6 support.
-        * Add ``sets`` to the module copied over for Python 2.3 (though Python
-          2.3 still probably doesn't work).
-        
-        1.1.1
-        ~~~~~
-        
-        * Added support for Jython 2.5.
-        
-        1.1
-        ~~~
-        
-        * Added support for Python 2.6.
-        * Fix a problem with missing ``DLLs/zlib.pyd`` on Windows.  Create
-        * ``bin/python`` (or ``bin/python.exe``) even when you run virtualenv
-          with an interpreter named, e.g., ``python2.4``
-        * Fix MacPorts Python
-        * Added --unzip-setuptools option
-        * Update to Setuptools 0.6c8
-        * If the current directory is not writable, run ez_setup.py in ``/tmp``
-        * Copy or symlink over the ``include`` directory so that packages will
-          more consistently compile.
-        
-        1.0
-        ~~~
-        
-        * Fix build on systems that use ``/usr/lib64``, distinct from
-          ``/usr/lib`` (specifically CentOS x64).
-        * Fixed bug in ``--clear``.
-        * Fixed typos in ``deactivate.bat``.
-        * Preserve ``$PYTHONPATH`` when calling subprocesses.
-        
-        0.9.2
-        ~~~~~
-        
-        * Fix include dir copying on Windows (makes compiling possible).
-        * Include the main ``lib-tk`` in the path.
-        * Patch ``distutils.sysconfig``: ``get_python_inc`` and
-          ``get_python_lib`` to point to the global locations.
-        * Install ``distutils.cfg`` before Setuptools, so that system
-          customizations of ``distutils.cfg`` won't effect the installation.
-        * Add ``bin/pythonX.Y`` to the virtualenv (in addition to
-          ``bin/python``).
-        * Fixed an issue with Mac Framework Python builds, and absolute paths
-          (from Ronald Oussoren).
-        
-        0.9.1
-        ~~~~~
-        
-        * Improve ability to create a virtualenv from inside a virtualenv.
-        * Fix a little bug in ``bin/activate``.
-        * Actually get ``distutils.cfg`` to work reliably.
-        
-        0.9
-        ~~~
-        
-        * Added ``lib-dynload`` and ``config`` to things that need to be
-          copied over in an environment.
-        * Copy over or symlink the ``include`` directory, so that you can
-          build packages that need the C headers.
-        * Include a ``distutils`` package, so you can locally update
-          ``distutils.cfg`` (in ``lib/pythonX.Y/distutils/distutils.cfg``).
-        * Better avoid downloading Setuptools, and hitting PyPI on environment
-          creation.
-        * Fix a problem creating a ``lib64/`` directory.
-        * Should work on MacOSX Framework builds (the default Python
-          installations on Mac).  Thanks to Ronald Oussoren.
-        
-        0.8.4
-        ~~~~~
-        
-        * Windows installs would sometimes give errors about ``sys.prefix`` that
-          were inaccurate.
-        * Slightly prettier output.
-        
-        0.8.3
-        ~~~~~
-        
-        * Added support for Windows.
-        
-        0.8.2
-        ~~~~~
-        
-        * Give a better warning if you are on an unsupported platform (Mac
-          Framework Pythons, and Windows).
-        * Give error about running while inside a workingenv.
-        * Give better error message about Python 2.3.
-        
-        0.8.1
-        ~~~~~
-        
-        Fixed packaging of the library.
-        
-        0.8
-        ~~~
-        
-        Initial release.  Everything is changed and new!
-        
-Keywords: setuptools deployment installation distutils
-Platform: UNKNOWN
-Classifier: Development Status :: 4 - Beta
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.4
-Classifier: Programming Language :: Python :: 2.5
-Classifier: Programming Language :: Python :: 2.6
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.1
-Classifier: Programming Language :: Python :: 3.2
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv.egg-info/SOURCES.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-AUTHORS.txt
-LICENSE.txt
-MANIFEST.in
-setup.py
-virtualenv.py
-docs/index.txt
-docs/news.txt
-scripts/virtualenv
-virtualenv.egg-info/PKG-INFO
-virtualenv.egg-info/SOURCES.txt
-virtualenv.egg-info/dependency_links.txt
-virtualenv.egg-info/entry_points.txt
-virtualenv.egg-info/not-zip-safe
-virtualenv.egg-info/top_level.txt
-virtualenv_embedded/activate.bat
-virtualenv_embedded/activate.csh
-virtualenv_embedded/activate.fish
-virtualenv_embedded/activate.ps1
-virtualenv_embedded/activate.sh
-virtualenv_embedded/activate_this.py
-virtualenv_embedded/deactivate.bat
-virtualenv_embedded/distribute_setup.py
-virtualenv_embedded/distutils-init.py
-virtualenv_embedded/distutils.cfg
-virtualenv_embedded/ez_setup.py
-virtualenv_embedded/site.py
-virtualenv_support/__init__.py
-virtualenv_support/distribute-0.6.24.tar.gz
-virtualenv_support/pip-1.1.tar.gz
-virtualenv_support/setuptools-0.6c11-py2.4.egg
-virtualenv_support/setuptools-0.6c11-py2.5.egg
-virtualenv_support/setuptools-0.6c11-py2.6.egg
-virtualenv_support/setuptools-0.6c11-py2.7.egg
\ No newline at end of file
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv.egg-info/dependency_links.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv.egg-info/entry_points.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-[console_scripts]
-virtualenv = virtualenv:main
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv.egg-info/not-zip-safe
+++ /dev/null
@@ -1,1 +0,0 @@
-
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv.egg-info/top_level.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-virtualenv_support
-virtualenv
old mode 100755
new mode 100644
--- a/other-licenses/virtualenv/virtualenv.py
+++ b/other-licenses/virtualenv/virtualenv.py
@@ -1,258 +1,51 @@
 #!/usr/bin/env python
 """Create a "virtual" Python installation
 """
 
-# If you change the version here, change it in setup.py
-# and docs/conf.py as well.
-virtualenv_version = "1.7.1.2"
+virtualenv_version = "1.4.8"
 
-import base64
 import sys
 import os
 import optparse
 import re
 import shutil
 import logging
-import tempfile
-import zlib
-import errno
 import distutils.sysconfig
-from distutils.util import strtobool
-
 try:
     import subprocess
-except ImportError:
+except ImportError, e:
     if sys.version_info <= (2, 3):
-        print('ERROR: %s' % sys.exc_info()[1])
-        print('ERROR: this script requires Python 2.4 or greater; or at least the subprocess module.')
-        print('If you copy subprocess.py from a newer version of Python this script will probably work')
+        print 'ERROR: %s' % e
+        print 'ERROR: this script requires Python 2.4 or greater; or at least the subprocess module.'
+        print 'If you copy subprocess.py from a newer version of Python this script will probably work'
         sys.exit(101)
     else:
         raise
 try:
     set
 except NameError:
     from sets import Set as set
-try:
-    basestring
-except NameError:
-    basestring = str
-
-try:
-    import ConfigParser
-except ImportError:
-    import configparser as ConfigParser
 
 join = os.path.join
 py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1])
-
 is_jython = sys.platform.startswith('java')
-is_pypy = hasattr(sys, 'pypy_version_info')
-is_win  = (sys.platform == 'win32')
-abiflags = getattr(sys, 'abiflags', '')
-
-user_dir = os.path.expanduser('~')
-if sys.platform == 'win32':
-    user_dir = os.environ.get('APPDATA', user_dir)  # Use %APPDATA% for roaming
-    default_storage_dir = os.path.join(user_dir, 'virtualenv')
-else:
-    default_storage_dir = os.path.join(user_dir, '.virtualenv')
-default_config_file = os.path.join(default_storage_dir, 'virtualenv.ini')
-
-if is_pypy:
-    expected_exe = 'pypy'
-elif is_jython:
-    expected_exe = 'jython'
-else:
-    expected_exe = 'python'
-
+expected_exe = is_jython and 'jython' or 'python'
 
 REQUIRED_MODULES = ['os', 'posix', 'posixpath', 'nt', 'ntpath', 'genericpath',
                     'fnmatch', 'locale', 'encodings', 'codecs',
                     'stat', 'UserDict', 'readline', 'copy_reg', 'types',
                     're', 'sre', 'sre_parse', 'sre_constants', 'sre_compile',
-                    'zlib']
-
-REQUIRED_FILES = ['lib-dynload', 'config']
+                    'lib-dynload', 'config', 'zlib']
 
-majver, minver = sys.version_info[:2]
-if majver == 2:
-    if minver >= 6:
-        REQUIRED_MODULES.extend(['warnings', 'linecache', '_abcoll', 'abc'])
-    if minver >= 7:
-        REQUIRED_MODULES.extend(['_weakrefset'])
-    if minver <= 3:
-        REQUIRED_MODULES.extend(['sets', '__future__'])
-elif majver == 3:
-    # Some extra modules are needed for Python 3, but different ones
-    # for different versions.
-    REQUIRED_MODULES.extend(['_abcoll', 'warnings', 'linecache', 'abc', 'io',
-                             '_weakrefset', 'copyreg', 'tempfile', 'random',
-                             '__future__', 'collections', 'keyword', 'tarfile',
-                             'shutil', 'struct', 'copy'])
-    if minver >= 2:
-        REQUIRED_FILES[-1] = 'config-%s' % majver
-    if minver == 3:
-        # The whole list of 3.3 modules is reproduced below - the current
-        # uncommented ones are required for 3.3 as of now, but more may be
-        # added as 3.3 development continues.
-        REQUIRED_MODULES.extend([
-            #"aifc",
-            #"antigravity",
-            #"argparse",
-            #"ast",
-            #"asynchat",
-            #"asyncore",
-            "base64",
-            #"bdb",
-            #"binhex",
-            "bisect",
-            #"calendar",
-            #"cgi",
-            #"cgitb",
-            #"chunk",
-            #"cmd",
-            #"codeop",
-            #"code",
-            #"colorsys",
-            #"_compat_pickle",
-            #"compileall",
-            #"concurrent",
-            #"configparser",
-            #"contextlib",
-            #"cProfile",
-            #"crypt",
-            #"csv",
-            #"ctypes",
-            #"curses",
-            #"datetime",
-            #"dbm",
-            #"decimal",
-            #"difflib",
-            #"dis",
-            #"doctest",
-            #"dummy_threading",
-            "_dummy_thread",
-            #"email",
-            #"filecmp",
-            #"fileinput",
-            #"formatter",
-            #"fractions",
-            #"ftplib",
-            #"functools",
-            #"getopt",
-            #"getpass",
-            #"gettext",
-            #"glob",
-            #"gzip",
-            "hashlib",
-            "heapq",
-            "hmac",
-            #"html",
-            #"http",
-            #"idlelib",
-            #"imaplib",
-            #"imghdr",
-            #"importlib",
-            #"inspect",
-            #"json",
-            #"lib2to3",
-            #"logging",
-            #"macpath",
-            #"macurl2path",
-            #"mailbox",
-            #"mailcap",
-            #"_markupbase",
-            #"mimetypes",
-            #"modulefinder",
-            #"multiprocessing",
-            #"netrc",
-            #"nntplib",
-            #"nturl2path",
-            #"numbers",
-            #"opcode",
-            #"optparse",
-            #"os2emxpath",
-            #"pdb",
-            #"pickle",
-            #"pickletools",
-            #"pipes",
-            #"pkgutil",
-            #"platform",
-            #"plat-linux2",
-            #"plistlib",
-            #"poplib",
-            #"pprint",
-            #"profile",
-            #"pstats",
-            #"pty",
-            #"pyclbr",
-            #"py_compile",
-            #"pydoc_data",
-            #"pydoc",
-            #"_pyio",
-            #"queue",
-            #"quopri",
-            "reprlib",
-            "rlcompleter",
-            #"runpy",
-            #"sched",
-            #"shelve",
-            #"shlex",
-            #"smtpd",
-            #"smtplib",
-            #"sndhdr",
-            #"socket",
-            #"socketserver",
-            #"sqlite3",
-            #"ssl",
-            #"stringprep",
-            #"string",
-            #"_strptime",
-            #"subprocess",
-            #"sunau",
-            #"symbol",
-            #"symtable",
-            #"sysconfig",
-            #"tabnanny",
-            #"telnetlib",
-            #"test",
-            #"textwrap",
-            #"this",
-            #"_threading_local",
-            #"threading",
-            #"timeit",
-            #"tkinter",
-            #"tokenize",
-            #"token",
-            #"traceback",
-            #"trace",
-            #"tty",
-            #"turtledemo",
-            #"turtle",
-            #"unittest",
-            #"urllib",
-            #"uuid",
-            #"uu",
-            #"wave",
-            "weakref",
-            #"webbrowser",
-            #"wsgiref",
-            #"xdrlib",
-            #"xml",
-            #"xmlrpc",
-            #"zipfile",
-        ])
-
-if is_pypy:
-    # these are needed to correctly display the exceptions that may happen
-    # during the bootstrap
-    REQUIRED_MODULES.extend(['traceback', 'linecache'])
+if sys.version_info[:2] >= (2, 6):
+    REQUIRED_MODULES.extend(['warnings', 'linecache', '_abcoll', 'abc'])
+if sys.version_info[:2] <= (2, 3):
+    REQUIRED_MODULES.extend(['sets', '__future__'])
 
 class Logger(object):
 
     """
     Logging object for use in command-line script.  Allows ranges of
     levels, to avoid some redundancy of displayed information.
     """
 
@@ -349,17 +142,17 @@ class Logger(object):
         """Returns the level that stdout runs at"""
         for level, consumer in self.consumers:
             if consumer is sys.stdout:
                 return level
         return self.FATAL
 
     def level_matches(self, level, consumer_level):
         """
-        >>> l = Logger([])
+        >>> l = Logger()
         >>> l.level_matches(3, 4)
         False
         >>> l.level_matches(3, 2)
         True
         >>> l.level_matches(slice(None, 3), 3)
         False
         >>> l.level_matches(slice(None, 3), 2)
         True
@@ -367,208 +160,185 @@ class Logger(object):
         True
         >>> l.level_matches(slice(2, 3), 1)
         False
         """
         if isinstance(level, slice):
             start, stop = level.start, level.stop
             if start is not None and start > consumer_level:
                 return False
-            if stop is not None and stop <= consumer_level:
+            if stop is not None or stop <= consumer_level:
                 return False
             return True
         else:
             return level >= consumer_level
 
     #@classmethod
     def level_for_integer(cls, level):
         levels = cls.LEVELS
         if level < 0:
             return levels[0]
         if level >= len(levels):
             return levels[-1]
         return levels[level]
 
     level_for_integer = classmethod(level_for_integer)
 
-# create a silent logger just to prevent this from being undefined
-# will be overridden with requested verbosity main() is called.
-logger = Logger([(Logger.LEVELS[-1], sys.stdout)])
-
 def mkdir(path):
     if not os.path.exists(path):
         logger.info('Creating %s', path)
         os.makedirs(path)
     else:
         logger.info('Directory %s already exists', path)
 
-def copyfileordir(src, dest):
-    if os.path.isdir(src):
-        shutil.copytree(src, dest, True)
-    else:
-        shutil.copy2(src, dest)
-
 def copyfile(src, dest, symlink=True):
     if not os.path.exists(src):
         # Some bad symlink in the src
         logger.warn('Cannot find file %s (bad symlink)', src)
         return
     if os.path.exists(dest):
         logger.debug('File %s already exists', dest)
         return
     if not os.path.exists(os.path.dirname(dest)):
         logger.info('Creating parent directories for %s' % os.path.dirname(dest))
         os.makedirs(os.path.dirname(dest))
-    if not os.path.islink(src):
-        srcpath = os.path.abspath(src)
-    else:
-        srcpath = os.readlink(src)
-    if symlink and hasattr(os, 'symlink') and not is_win:
+    if symlink and hasattr(os, 'symlink'):
         logger.info('Symlinking %s', dest)
-        try:
-            os.symlink(srcpath, dest)
-        except (OSError, NotImplementedError):
-            logger.info('Symlinking failed, copying to %s', dest)
-            copyfileordir(src, dest)
+        os.symlink(os.path.abspath(src), dest)
     else:
         logger.info('Copying to %s', dest)
-        copyfileordir(src, dest)
+        if os.path.isdir(src):
+            shutil.copytree(src, dest, True)
+        else:
+            shutil.copy2(src, dest)
 
 def writefile(dest, content, overwrite=True):
     if not os.path.exists(dest):
         logger.info('Writing %s', dest)
         f = open(dest, 'wb')
-        f.write(content.encode('utf-8'))
+        f.write(content)
         f.close()
         return
     else:
         f = open(dest, 'rb')
         c = f.read()
         f.close()
         if c != content:
             if not overwrite:
                 logger.notify('File %s exists with different content; not overwriting', dest)
                 return
             logger.notify('Overwriting %s with new content', dest)
             f = open(dest, 'wb')
-            f.write(content.encode('utf-8'))
+            f.write(content)
             f.close()
         else:
             logger.info('Content %s already in place', dest)
 
 def rmtree(dir):
     if os.path.exists(dir):
         logger.notify('Deleting tree %s', dir)
         shutil.rmtree(dir)
     else:
         logger.info('Do not need to delete %s; already gone', dir)
 
 def make_exe(fn):
     if hasattr(os, 'chmod'):
-        oldmode = os.stat(fn).st_mode & 0xFFF # 0o7777
-        newmode = (oldmode | 0x16D) & 0xFFF # 0o555, 0o7777
+        oldmode = os.stat(fn).st_mode & 07777
+        newmode = (oldmode | 0555) & 07777
         os.chmod(fn, newmode)
         logger.info('Changed mode of %s to %s', fn, oct(newmode))
 
 def _find_file(filename, dirs):
-    for dir in reversed(dirs):
+    for dir in dirs:
         if os.path.exists(join(dir, filename)):
             return join(dir, filename)
     return filename
 
-def _install_req(py_executable, unzip=False, distribute=False,
-                 search_dirs=None, never_download=False):
-
-    if search_dirs is None:
-        search_dirs = file_search_dirs()
-
+def _install_req(py_executable, unzip=False, distribute=False):
     if not distribute:
         setup_fn = 'setuptools-0.6c11-py%s.egg' % sys.version[:3]
         project_name = 'setuptools'
         bootstrap_script = EZ_SETUP_PY
         source = None
     else:
         setup_fn = None
-        source = 'distribute-0.6.24.tar.gz'
+        source = 'distribute-0.6.8.tar.gz'
         project_name = 'distribute'
         bootstrap_script = DISTRIBUTE_SETUP_PY
+        try:
+            # check if the global Python has distribute installed or plain
+            # setuptools
+            import pkg_resources
+            if not hasattr(pkg_resources, '_distribute'):
+                location = os.path.dirname(pkg_resources.__file__)
+                logger.notify("A globally installed setuptools was found (in %s)" % location)
+                logger.notify("Use the --no-site-packages option to use distribute in "
+                              "the virtualenv.")
+        except ImportError:
+            pass
+
+    search_dirs = file_search_dirs()
 
     if setup_fn is not None:
         setup_fn = _find_file(setup_fn, search_dirs)
 
     if source is not None:
         source = _find_file(source, search_dirs)
 
     if is_jython and os._name == 'nt':
         # Jython's .bat sys.executable can't handle a command line
         # argument with newlines
+        import tempfile
         fd, ez_setup = tempfile.mkstemp('.py')
         os.write(fd, bootstrap_script)
         os.close(fd)
         cmd = [py_executable, ez_setup]
     else:
         cmd = [py_executable, '-c', bootstrap_script]
     if unzip:
         cmd.append('--always-unzip')
     env = {}
-    remove_from_env = []
     if logger.stdout_level_matches(logger.DEBUG):
         cmd.append('-v')
 
     old_chdir = os.getcwd()
     if setup_fn is not None and os.path.exists(setup_fn):
         logger.info('Using existing %s egg: %s' % (project_name, setup_fn))
         cmd.append(setup_fn)
         if os.environ.get('PYTHONPATH'):
             env['PYTHONPATH'] = setup_fn + os.path.pathsep + os.environ['PYTHONPATH']
         else:
             env['PYTHONPATH'] = setup_fn
     else:
         # the source is found, let's chdir
         if source is not None and os.path.exists(source):
-            logger.info('Using existing %s egg: %s' % (project_name, source))
             os.chdir(os.path.dirname(source))
-            # in this case, we want to be sure that PYTHONPATH is unset (not
-            # just empty, really unset), else CPython tries to import the
-            # site.py that it's in virtualenv_support
-            remove_from_env.append('PYTHONPATH')
         else:
-            if never_download:
-                logger.fatal("Can't find any local distributions of %s to install "
-                             "and --never-download is set.  Either re-run virtualenv "
-                             "without the --never-download option, or place a %s "
-                             "distribution (%s) in one of these "
-                             "locations: %r" % (project_name, project_name,
-                                                setup_fn or source,
-                                                search_dirs))
-                sys.exit(1)
-
             logger.info('No %s egg found; downloading' % project_name)
         cmd.extend(['--always-copy', '-U', project_name])
     logger.start_progress('Installing %s...' % project_name)
     logger.indent += 2
     cwd = None
     if project_name == 'distribute':
         env['DONT_PATCH_SETUPTOOLS'] = 'true'
 
     def _filter_ez_setup(line):
         return filter_ez_setup(line, project_name)
 
     if not os.access(os.getcwd(), os.W_OK):
-        cwd = tempfile.mkdtemp()
+        cwd = '/tmp'
         if source is not None and os.path.exists(source):
             # the current working dir is hostile, let's copy the
-            # tarball to a temp dir
+            # tarball to /tmp
             target = os.path.join(cwd, os.path.split(source)[-1])
             shutil.copy(source, target)
     try:
         call_subprocess(cmd, show_stdout=False,
                         filter_stdout=_filter_ez_setup,
                         extra_env=env,
-                        remove_from_env=remove_from_env,
                         cwd=cwd)
     finally:
         logger.indent -= 2
         logger.end_progress()
         if os.getcwd() != old_chdir:
             os.chdir(old_chdir)
         if is_jython and os._name == 'nt':
             os.remove(ez_setup)
@@ -582,70 +352,49 @@ def file_search_dirs():
         try:
             import virtualenv
         except ImportError:
             pass
         else:
             dirs.append(os.path.join(os.path.dirname(virtualenv.__file__), 'virtualenv_support'))
     return [d for d in dirs if os.path.isdir(d)]
 
-def install_setuptools(py_executable, unzip=False,
-                       search_dirs=None, never_download=False):
-    _install_req(py_executable, unzip,
-                 search_dirs=search_dirs, never_download=never_download)
+def install_setuptools(py_executable, unzip=False):
+    _install_req(py_executable, unzip)
 
-def install_distribute(py_executable, unzip=False,
-                       search_dirs=None, never_download=False):
-    _install_req(py_executable, unzip, distribute=True,
-                 search_dirs=search_dirs, never_download=never_download)
+def install_distribute(py_executable, unzip=False):
+    _install_req(py_executable, unzip, distribute=True)
 
 _pip_re = re.compile(r'^pip-.*(zip|tar.gz|tar.bz2|tgz|tbz)$', re.I)
-def install_pip(py_executable, search_dirs=None, never_download=False):
-    if search_dirs is None:
-        search_dirs = file_search_dirs()
-
+def install_pip(py_executable):
     filenames = []
-    for dir in search_dirs:
+    for dir in file_search_dirs():
         filenames.extend([join(dir, fn) for fn in os.listdir(dir)
                           if _pip_re.search(fn)])
-    filenames = [(os.path.basename(filename).lower(), i, filename) for i, filename in enumerate(filenames)]
-    filenames.sort()
-    filenames = [filename for basename, i, filename in filenames]
+    filenames.sort(key=lambda x: os.path.basename(x).lower())
     if not filenames:
         filename = 'pip'
     else:
         filename = filenames[-1]
     easy_install_script = 'easy_install'
     if sys.platform == 'win32':
         easy_install_script = 'easy_install-script.py'
-    cmd = [join(os.path.dirname(py_executable), easy_install_script), filename]
-    if sys.platform == 'win32':
-        cmd.insert(0, py_executable)
+    cmd = [py_executable, join(os.path.dirname(py_executable), easy_install_script), filename]
     if filename == 'pip':
-        if never_download:
-            logger.fatal("Can't find any local distributions of pip to install "
-                         "and --never-download is set.  Either re-run virtualenv "
-                         "without the --never-download option, or place a pip "
-                         "source distribution (zip/tar.gz/tar.bz2) in one of these "
-                         "locations: %r" % search_dirs)
-            sys.exit(1)
         logger.info('Installing pip from network...')
     else:
-        logger.info('Installing existing %s distribution: %s' % (
-                os.path.basename(filename), filename))
-    logger.start_progress('Installing pip...')
+        logger.info('Installing %s' % os.path.basename(filename))
     logger.indent += 2
     def _filter_setup(line):
         return filter_ez_setup(line, 'pip')
     try:
         call_subprocess(cmd, show_stdout=False,
                         filter_stdout=_filter_setup)
     finally:
         logger.indent -= 2
-        logger.end_progress()
 
 def filter_ez_setup(line, project_name='setuptools'):
     if not line.strip():
         return Logger.DEBUG
     if project_name == 'distribute':
         for prefix in ('Extracting', 'Now working', 'Installing', 'Before',
                        'Scanning', 'Setuptools', 'Egg', 'Already',
                        'running', 'writing', 'reading', 'installing',
@@ -656,123 +405,20 @@ def filter_ez_setup(line, project_name='
         return Logger.DEBUG
     for prefix in ['Reading ', 'Best match', 'Processing setuptools',
                    'Copying setuptools', 'Adding setuptools',
                    'Installing ', 'Installed ']:
         if line.startswith(prefix):
             return Logger.DEBUG
     return Logger.INFO
 
-
-class UpdatingDefaultsHelpFormatter(optparse.IndentedHelpFormatter):
-    """
-    Custom help formatter for use in ConfigOptionParser that updates
-    the defaults before expanding them, allowing them to show up correctly
-    in the help listing
-    """
-    def expand_default(self, option):
-        if self.parser is not None:
-            self.parser.update_defaults(self.parser.defaults)
-        return optparse.IndentedHelpFormatter.expand_default(self, option)
-
-
-class ConfigOptionParser(optparse.OptionParser):
-    """
-    Custom option parser which updates its defaults by by checking the
-    configuration files and environmental variables
-    """
-    def __init__(self, *args, **kwargs):
-        self.config = ConfigParser.RawConfigParser()
-        self.files = self.get_config_files()
-        self.config.read(self.files)
-        optparse.OptionParser.__init__(self, *args, **kwargs)
-
-    def get_config_files(self):
-        config_file = os.environ.get('VIRTUALENV_CONFIG_FILE', False)
-        if config_file and os.path.exists(config_file):
-            return [config_file]
-        return [default_config_file]
-
-    def update_defaults(self, defaults):
-        """
-        Updates the given defaults with values from the config files and
-        the environ. Does a little special handling for certain types of
-        options (lists).
-        """
-        # Then go and look for the other sources of configuration:
-        config = {}
-        # 1. config files
-        config.update(dict(self.get_config_section('virtualenv')))
-        # 2. environmental variables
-        config.update(dict(self.get_environ_vars()))
-        # Then set the options with those values
-        for key, val in config.items():
-            key = key.replace('_', '-')
-            if not key.startswith('--'):
-                key = '--%s' % key  # only prefer long opts
-            option = self.get_option(key)
-            if option is not None:
-                # ignore empty values
-                if not val:
-                    continue
-                # handle multiline configs
-                if option.action == 'append':
-                    val = val.split()
-                else:
-                    option.nargs = 1
-                if option.action in ('store_true', 'store_false', 'count'):
-                    val = strtobool(val)
-                try:
-                    val = option.convert_value(key, val)
-                except optparse.OptionValueError:
-                    e = sys.exc_info()[1]
-                    print("An error occured during configuration: %s" % e)
-                    sys.exit(3)
-                defaults[option.dest] = val
-        return defaults
-
-    def get_config_section(self, name):
-        """
-        Get a section of a configuration
-        """
-        if self.config.has_section(name):
-            return self.config.items(name)
-        return []
-
-    def get_environ_vars(self, prefix='VIRTUALENV_'):
-        """
-        Returns a generator with all environmental vars with prefix VIRTUALENV
-        """
-        for key, val in os.environ.items():
-            if key.startswith(prefix):
-                yield (key.replace(prefix, '').lower(), val)
-
-    def get_default_values(self):
-        """
-        Overridding to make updating the defaults after instantiation of
-        the option parser possible, update_defaults() does the dirty work.
-        """
-        if not self.process_default_values:
-            # Old, pre-Optik 1.5 behaviour.
-            return optparse.Values(self.defaults)
-
-        defaults = self.update_defaults(self.defaults.copy()) # ours
-        for option in self._get_all_options():
-            default = defaults.get(option.dest)
-            if isinstance(default, basestring):
-                opt_str = option.get_opt_string()
-                defaults[option.dest] = option.check_value(opt_str, default)
-        return optparse.Values(defaults)
-
-
 def main():
-    parser = ConfigOptionParser(
+    parser = optparse.OptionParser(
         version=virtualenv_version,
-        usage="%prog [OPTIONS] DEST_DIR",
-        formatter=UpdatingDefaultsHelpFormatter())
+        usage="%prog [OPTIONS] DEST_DIR")
 
     parser.add_option(
         '-v', '--verbose',
         action='count',
         dest='verbose',
         default=0,
         help="Increase verbosity")
 
@@ -800,62 +446,34 @@ def main():
     parser.add_option(
         '--no-site-packages',
         dest='no_site_packages',
         action='store_true',
         help="Don't give access to the global site-packages dir to the "
              "virtual environment")
 
     parser.add_option(
-        '--system-site-packages',
-        dest='system_site_packages',
-        action='store_true',
-        help="Give access to the global site-packages dir to the "
-             "virtual environment")
-
-    parser.add_option(
         '--unzip-setuptools',
         dest='unzip_setuptools',
         action='store_true',
         help="Unzip Setuptools or Distribute when installing it")
 
     parser.add_option(
         '--relocatable',
         dest='relocatable',
         action='store_true',
         help='Make an EXISTING virtualenv environment relocatable.  '
         'This fixes up scripts and makes all .pth files relative')
 
     parser.add_option(
         '--distribute',
         dest='use_distribute',
         action='store_true',
-        help='Use Distribute instead of Setuptools. Set environ variable '
-        'VIRTUALENV_DISTRIBUTE to make it the default ')
-
-    default_search_dirs = file_search_dirs()
-    parser.add_option(
-        '--extra-search-dir',
-        dest="search_dirs",
-        action="append",
-        default=default_search_dirs,
-        help="Directory to look for setuptools/distribute/pip distributions in. "
-        "You can add any number of additional --extra-search-dir paths.")
-
-    parser.add_option(
-        '--never-download',
-        dest="never_download",
-        action="store_true",
-        help="Never download anything from the network.  Instead, virtualenv will fail "
-        "if local distributions of setuptools/distribute/pip are not present.")
-
-    parser.add_option(
-        '--prompt=',
-        dest='prompt',
-        help='Provides an alternative prompt prefix for this environment')
+        help='Use Distribute instead of Setuptools. Set environ variable'
+        'VIRTUALENV_USE_DISTRIBUTE to make it the default ')
 
     if 'extend_parser' in globals():
         extend_parser(parser)
 
     options, args = parser.parse_args()
 
     global logger
 
@@ -871,36 +489,25 @@ def main():
         if interpreter == sys.executable:
             logger.warn('Already using interpreter %s' % interpreter)
         else:
             logger.notify('Running virtualenv with interpreter %s' % interpreter)
             env['VIRTUALENV_INTERPRETER_RUNNING'] = 'true'
             file = __file__
             if file.endswith('.pyc'):
                 file = file[:-1]
-            popen = subprocess.Popen([interpreter, file] + sys.argv[1:], env=env)
-            raise SystemExit(popen.wait())
-
-    # Force --distribute on Python 3, since setuptools is not available.
-    if majver > 2:
-        options.use_distribute = True
+            os.execvpe(interpreter, [interpreter, file] + sys.argv[1:], env)
 
-    if os.environ.get('PYTHONDONTWRITEBYTECODE') and not options.use_distribute:
-        print(
-            "The PYTHONDONTWRITEBYTECODE environment variable is "
-            "not compatible with setuptools. Either use --distribute "
-            "or unset PYTHONDONTWRITEBYTECODE.")
-        sys.exit(2)
     if not args:
-        print('You must provide a DEST_DIR')
+        print 'You must provide a DEST_DIR'
         parser.print_help()
         sys.exit(2)
     if len(args) > 1:
-        print('There must be only one argument: DEST_DIR (you gave %s)' % (
-            ' '.join(args)))
+        print 'There must be only one argument: DEST_DIR (you gave %s)' % (
+            ' '.join(args))
         parser.print_help()
         sys.exit(2)
 
     home_dir = args[0]
 
     if os.environ.get('WORKING_ENV'):
         logger.fatal('ERROR: you cannot run virtualenv while in a workingenv')
         logger.fatal('Please deactivate your workingenv, then re-run this script')
@@ -909,82 +516,56 @@ def main():
     if 'PYTHONHOME' in os.environ:
         logger.warn('PYTHONHOME is set.  You *must* activate the virtualenv before using it')
         del os.environ['PYTHONHOME']
 
     if options.relocatable:
         make_environment_relocatable(home_dir)
         return
 
-    if options.no_site_packages:
-        logger.warn('The --no-site-packages flag is deprecated; it is now '
-                    'the default behavior.')
-
-    create_environment(home_dir,
-                       site_packages=options.system_site_packages,
-                       clear=options.clear,
+    create_environment(home_dir, site_packages=not options.no_site_packages, clear=options.clear,
                        unzip_setuptools=options.unzip_setuptools,
-                       use_distribute=options.use_distribute,
-                       prompt=options.prompt,
-                       search_dirs=options.search_dirs,
-                       never_download=options.never_download)
+                       use_distribute=options.use_distribute)
     if 'after_install' in globals():
         after_install(options, home_dir)
 
 def call_subprocess(cmd, show_stdout=True,
                     filter_stdout=None, cwd=None,
-                    raise_on_returncode=True, extra_env=None,
-                    remove_from_env=None):
+                    raise_on_returncode=True, extra_env=None):
     cmd_parts = []
     for part in cmd:
-        if len(part) > 45:
-            part = part[:20]+"..."+part[-20:]
+        if len(part) > 40:
+            part = part[:30]+"..."+part[-5:]
         if ' ' in part or '\n' in part or '"' in part or "'" in part:
             part = '"%s"' % part.replace('"', '\\"')
-        if hasattr(part, 'decode'):
-            try:
-                part = part.decode(sys.getdefaultencoding())
-            except UnicodeDecodeError:
-                part = part.decode(sys.getfilesystemencoding())
         cmd_parts.append(part)
     cmd_desc = ' '.join(cmd_parts)
     if show_stdout:
         stdout = None
     else:
         stdout = subprocess.PIPE
     logger.debug("Running command %s" % cmd_desc)
-    if extra_env or remove_from_env:
+    if extra_env:
         env = os.environ.copy()
-        if extra_env:
-            env.update(extra_env)
-        if remove_from_env:
-            for varname in remove_from_env:
-                env.pop(varname, None)
+        env.update(extra_env)
     else:
         env = None
     try:
         proc = subprocess.Popen(
             cmd, stderr=subprocess.STDOUT, stdin=None, stdout=stdout,
             cwd=cwd, env=env)
-    except Exception:
-        e = sys.exc_info()[1]
+    except Exception, e:
         logger.fatal(
             "Error %s while executing command %s" % (e, cmd_desc))
         raise
     all_output = []
     if stdout is not None:
         stdout = proc.stdout
-        encoding = sys.getdefaultencoding()
-        fs_encoding = sys.getfilesystemencoding()
         while 1:
             line = stdout.readline()
-            try:
-                line = line.decode(encoding)
-            except UnicodeDecodeError:
-                line = line.decode(fs_encoding)
             if not line:
                 break
             line = line.rstrip()
             all_output.append(line)
             if filter_stdout:
                 level = filter_stdout(line)
                 if isinstance(level, tuple):
                     level, line = level
@@ -1005,144 +586,80 @@ def call_subprocess(cmd, show_stdout=Tru
                 "Command %s failed with error code %s"
                 % (cmd_desc, proc.returncode))
         else:
             logger.warn(
                 "Command %s had error code %s"
                 % (cmd_desc, proc.returncode))
 
 
-def create_environment(home_dir, site_packages=False, clear=False,
-                       unzip_setuptools=False, use_distribute=False,
-                       prompt=None, search_dirs=None, never_download=False):
+def create_environment(home_dir, site_packages=True, clear=False,
+                       unzip_setuptools=False, use_distribute=False):
     """
     Creates a new environment in ``home_dir``.
 
-    If ``site_packages`` is true, then the global ``site-packages/``
-    directory will be on the path.
+    If ``site_packages`` is true (the default) then the global
+    ``site-packages/`` directory will be on the path.
 
     If ``clear`` is true (default False) then the environment will
     first be cleared.
     """
     home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir)
 
     py_executable = os.path.abspath(install_python(
         home_dir, lib_dir, inc_dir, bin_dir,
         site_packages=site_packages, clear=clear))
 
-    install_distutils(home_dir)
+    install_distutils(lib_dir, home_dir)
 
-    # use_distribute also is True if VIRTUALENV_DISTRIBUTE env var is set
-    # we also check VIRTUALENV_USE_DISTRIBUTE for backwards compatibility
     if use_distribute or os.environ.get('VIRTUALENV_USE_DISTRIBUTE'):
-        install_distribute(py_executable, unzip=unzip_setuptools,
-                           search_dirs=search_dirs, never_download=never_download)
+        install_distribute(py_executable, unzip=unzip_setuptools)
     else:
-        install_setuptools(py_executable, unzip=unzip_setuptools,
-                           search_dirs=search_dirs, never_download=never_download)
+        install_setuptools(py_executable, unzip=unzip_setuptools)
 
-    install_pip(py_executable, search_dirs=search_dirs, never_download=never_download)
+    install_pip(py_executable)
 
-    install_activate(home_dir, bin_dir, prompt)
+    install_activate(home_dir, bin_dir)
 
 def path_locations(home_dir):
     """Return the path locations for the environment (where libraries are,
     where scripts go, etc)"""
     # XXX: We'd use distutils.sysconfig.get_python_inc/lib but its
     # prefix arg is broken: http://bugs.python.org/issue3386
     if sys.platform == 'win32':
         # Windows has lots of problems with executables with spaces in
         # the name; this function will remove them (using the ~1
         # format):
         mkdir(home_dir)
         if ' ' in home_dir:
             try:
                 import win32api
             except ImportError:
-                print('Error: the path "%s" has a space in it' % home_dir)
-                print('To handle these kinds of paths, the win32api module must be installed:')
-                print('  http://sourceforge.net/projects/pywin32/')
+                print 'Error: the path "%s" has a space in it' % home_dir
+                print 'To handle these kinds of paths, the win32api module must be installed:'
+                print '  http://sourceforge.net/projects/pywin32/'
                 sys.exit(3)
             home_dir = win32api.GetShortPathName(home_dir)
         lib_dir = join(home_dir, 'Lib')
         inc_dir = join(home_dir, 'Include')
         bin_dir = join(home_dir, 'Scripts')
     elif is_jython:
         lib_dir = join(home_dir, 'Lib')
         inc_dir = join(home_dir, 'Include')
         bin_dir = join(home_dir, 'bin')
-    elif is_pypy:
-        lib_dir = home_dir
-        inc_dir = join(home_dir, 'include')
-        bin_dir = join(home_dir, 'bin')
     else:
         lib_dir = join(home_dir, 'lib', py_version)
-        inc_dir = join(home_dir, 'include', py_version + abiflags)
+        inc_dir = join(home_dir, 'include', py_version)
         bin_dir = join(home_dir, 'bin')
     return home_dir, lib_dir, inc_dir, bin_dir
 
-
-def change_prefix(filename, dst_prefix):
-    prefixes = [sys.prefix]
-
-    if sys.platform == "darwin":
-        prefixes.extend((
-            os.path.join("/Library/Python", sys.version[:3], "site-packages"),
-            os.path.join(sys.prefix, "Extras", "lib", "python"),
-            os.path.join("~", "Library", "Python", sys.version[:3], "site-packages")))
-
-    if hasattr(sys, 'real_prefix'):
-        prefixes.append(sys.real_prefix)
-    prefixes = list(map(os.path.abspath, prefixes))
-    filename = os.path.abspath(filename)
-    for src_prefix in prefixes:
-        if filename.startswith(src_prefix):
-            _, relpath = filename.split(src_prefix, 1)
-            assert relpath[0] == os.sep
-            relpath = relpath[1:]
-            return join(dst_prefix, relpath)
-    assert False, "Filename %s does not start with any of these prefixes: %s" % \
-        (filename, prefixes)
-
-def copy_required_modules(dst_prefix):
-    import imp
-    # If we are running under -p, we need to remove the current
-    # directory from sys.path temporarily here, so that we
-    # definitely get the modules from the site directory of
-    # the interpreter we are running under, not the one
-    # virtualenv.py is installed under (which might lead to py2/py3
-    # incompatibility issues)
-    _prev_sys_path = sys.path
-    if os.environ.get('VIRTUALENV_INTERPRETER_RUNNING'):
-        sys.path = sys.path[1:]
-    try:
-        for modname in REQUIRED_MODULES:
-            if modname in sys.builtin_module_names:
-                logger.info("Ignoring built-in bootstrap module: %s" % modname)
-                continue
-            try:
-                f, filename, _ = imp.find_module(modname)
-            except ImportError:
-                logger.info("Cannot import bootstrap module: %s" % modname)
-            else:
-                if f is not None:
-                    f.close()
-                dst_filename = change_prefix(filename, dst_prefix)
-                copyfile(filename, dst_filename)
-                if filename.endswith('.pyc'):
-                    pyfile = filename[:-1]
-                    if os.path.exists(pyfile):
-                        copyfile(pyfile, dst_filename[:-1])
-    finally:
-        sys.path = _prev_sys_path
-
 def install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages, clear):
     """Install just the base environment, no distutils patches etc"""
     if sys.executable.startswith(bin_dir):
-        print('Please use the *system* python to run this script')
+        print 'Please use the *system* python to run this script'
         return
 
     if clear:
         rmtree(lib_dir)
         ## FIXME: why not delete it?
         ## Maybe it should delete everything with #!/path/to/venv/python in it
         logger.notify('Not deleting %s', bin_dir)
 
@@ -1153,64 +670,48 @@ def install_python(home_dir, lib_dir, in
         prefix = sys.prefix
     mkdir(lib_dir)
     fix_lib64(lib_dir)
     stdlib_dirs = [os.path.dirname(os.__file__)]
     if sys.platform == 'win32':
         stdlib_dirs.append(join(os.path.dirname(stdlib_dirs[0]), 'DLLs'))
     elif sys.platform == 'darwin':
         stdlib_dirs.append(join(stdlib_dirs[0], 'site-packages'))
-    if hasattr(os, 'symlink'):
-        logger.info('Symlinking Python bootstrap modules')
-    else:
-        logger.info('Copying Python bootstrap modules')
-    logger.indent += 2
-    try:
-        # copy required files...
-        for stdlib_dir in stdlib_dirs:
-            if not os.path.isdir(stdlib_dir):
-                continue
+    for stdlib_dir in stdlib_dirs:
+        if not os.path.isdir(stdlib_dir):
+            continue
+        if hasattr(os, 'symlink'):
+            logger.info('Symlinking Python bootstrap modules')
+        else:
+            logger.info('Copying Python bootstrap modules')
+        logger.indent += 2
+        try:
             for fn in os.listdir(stdlib_dir):
-                bn = os.path.splitext(fn)[0]
-                if fn != 'site-packages' and bn in REQUIRED_FILES:
+                if fn != 'site-packages' and os.path.splitext(fn)[0] in REQUIRED_MODULES:
                     copyfile(join(stdlib_dir, fn), join(lib_dir, fn))
-        # ...and modules
-        copy_required_modules(home_dir)
-    finally:
-        logger.indent -= 2
+        finally:
+            logger.indent -= 2
     mkdir(join(lib_dir, 'site-packages'))
-    import site
-    site_filename = site.__file__
-    if site_filename.endswith('.pyc'):
-        site_filename = site_filename[:-1]
-    elif site_filename.endswith('$py.class'):
-        site_filename = site_filename.replace('$py.class', '.py')
-    site_filename_dst = change_prefix(site_filename, home_dir)
-    site_dir = os.path.dirname(site_filename_dst)
-    writefile(site_filename_dst, SITE_PY)
-    writefile(join(site_dir, 'orig-prefix.txt'), prefix)
-    site_packages_filename = join(site_dir, 'no-global-site-packages.txt')
+    writefile(join(lib_dir, 'site.py'), SITE_PY)
+    writefile(join(lib_dir, 'orig-prefix.txt'), prefix)
+    site_packages_filename = join(lib_dir, 'no-global-site-packages.txt')
     if not site_packages:
         writefile(site_packages_filename, '')
     else:
         if os.path.exists(site_packages_filename):
             logger.info('Deleting %s' % site_packages_filename)
             os.unlink(site_packages_filename)
 
-    if is_pypy or is_win:
-        stdinc_dir = join(prefix, 'include')
-    else:
-        stdinc_dir = join(prefix, 'include', py_version + abiflags)
+    stdinc_dir = join(prefix, 'include', py_version)
     if os.path.exists(stdinc_dir):
         copyfile(stdinc_dir, inc_dir)
     else:
         logger.debug('No include dir %s' % stdinc_dir)
 
-    # pypy never uses exec_prefix, just ignore it
-    if sys.exec_prefix != prefix and not is_pypy:
+    if sys.exec_prefix != prefix:
         if sys.platform == 'win32':
             exec_dir = join(sys.exec_prefix, 'lib')
         elif is_jython:
             exec_dir = join(sys.exec_prefix, 'Lib')
         else:
             exec_dir = join(sys.exec_prefix, 'lib', py_version)
         for fn in os.listdir(exec_dir):
             copyfile(join(exec_dir, fn), join(lib_dir, fn))
@@ -1234,104 +735,59 @@ def install_python(home_dir, lib_dir, in
     if 'Python.framework' in prefix:
         if re.search(r'/Python(?:-32|-64)*$', py_executable):
             # The name of the python executable is not quite what
             # we want, rename it.
             py_executable = os.path.join(
                     os.path.dirname(py_executable), 'python')
 
     logger.notify('New %s executable in %s', expected_exe, py_executable)
-    pcbuild_dir = os.path.dirname(sys.executable)
-    pyd_pth = os.path.join(lib_dir, 'site-packages', 'virtualenv_builddir_pyd.pth')
-    if is_win and os.path.exists(os.path.join(pcbuild_dir, 'build.bat')):
-        logger.notify('Detected python running from build directory %s', pcbuild_dir)
-        logger.notify('Writing .pth file linking to build directory for *.pyd files')
-        writefile(pyd_pth, pcbuild_dir)
-    else:
-        pcbuild_dir = None
-        if os.path.exists(pyd_pth):
-            logger.info('Deleting %s (not Windows env or not build directory python)' % pyd_pth)
-            os.unlink(pyd_pth)
-        
     if sys.executable != py_executable:
         ## FIXME: could I just hard link?
         executable = sys.executable
         if sys.platform == 'cygwin' and os.path.exists(executable + '.exe'):
             # Cygwin misreports sys.executable sometimes
             executable += '.exe'
             py_executable += '.exe'
             logger.info('Executable actually exists in %s' % executable)
         shutil.copyfile(executable, py_executable)
         make_exe(py_executable)
         if sys.platform == 'win32' or sys.platform == 'cygwin':
             pythonw = os.path.join(os.path.dirname(sys.executable), 'pythonw.exe')
             if os.path.exists(pythonw):
                 logger.info('Also created pythonw.exe')
                 shutil.copyfile(pythonw, os.path.join(os.path.dirname(py_executable), 'pythonw.exe'))
-            python_d = os.path.join(os.path.dirname(sys.executable), 'python_d.exe')
-            python_d_dest = os.path.join(os.path.dirname(py_executable), 'python_d.exe')
-            if os.path.exists(python_d):
-                logger.info('Also created python_d.exe')
-                shutil.copyfile(python_d, python_d_dest)
-            elif os.path.exists(python_d_dest):
-                logger.info('Removed python_d.exe as it is no longer at the source')
-                os.unlink(python_d_dest)
-            # we need to copy the DLL to enforce that windows will load the correct one.
-            # may not exist if we are cygwin.
-            py_executable_dll = 'python%s%s.dll' % (
-                sys.version_info[0], sys.version_info[1])
-            py_executable_dll_d = 'python%s%s_d.dll' % (
-                sys.version_info[0], sys.version_info[1])
-            pythondll = os.path.join(os.path.dirname(sys.executable), py_executable_dll)
-            pythondll_d = os.path.join(os.path.dirname(sys.executable), py_executable_dll_d)
-            pythondll_d_dest = os.path.join(os.path.dirname(py_executable), py_executable_dll_d)
-            if os.path.exists(pythondll):
-                logger.info('Also created %s' % py_executable_dll)
-                shutil.copyfile(pythondll, os.path.join(os.path.dirname(py_executable), py_executable_dll))
-            if os.path.exists(pythondll_d):
-                logger.info('Also created %s' % py_executable_dll_d)
-                shutil.copyfile(pythondll_d, pythondll_d_dest)
-            elif os.path.exists(pythondll_d_dest):
-                logger.info('Removed %s as the source does not exist' % pythondll_d_dest)
-                os.unlink(pythondll_d_dest)
-        if is_pypy:
-            # make a symlink python --> pypy-c
-            python_executable = os.path.join(os.path.dirname(py_executable), 'python')
-            logger.info('Also created executable %s' % python_executable)
-            copyfile(py_executable, python_executable)
 
     if os.path.splitext(os.path.basename(py_executable))[0] != expected_exe:
         secondary_exe = os.path.join(os.path.dirname(py_executable),
                                      expected_exe)
         py_executable_ext = os.path.splitext(py_executable)[1]
         if py_executable_ext == '.exe':
             # python2.4 gives an extension of '.4' :P
             secondary_exe += py_executable_ext
         if os.path.exists(secondary_exe):
             logger.warn('Not overwriting existing %s script %s (you must use %s)'
                         % (expected_exe, secondary_exe, py_executable))
         else:
             logger.notify('Also creating executable in %s' % secondary_exe)
             shutil.copyfile(sys.executable, secondary_exe)
             make_exe(secondary_exe)
 
-    if '.framework' in prefix:
-        if 'Python.framework' in prefix:
-            logger.debug('MacOSX Python framework detected')
-            # Make sure we use the the embedded interpreter inside
-            # the framework, even if sys.executable points to
-            # the stub executable in ${sys.prefix}/bin
-            # See http://groups.google.com/group/python-virtualenv/
-            #                              browse_thread/thread/17cab2f85da75951
-            original_python = os.path.join(
-                prefix, 'Resources/Python.app/Contents/MacOS/Python')
-        if 'EPD' in prefix:
-            logger.debug('EPD framework detected')
-            original_python = os.path.join(prefix, 'bin/python')
-        shutil.copy(original_python, py_executable)
+    if 'Python.framework' in prefix:
+        logger.debug('MacOSX Python framework detected')
+
+        # Make sure we use the the embedded interpreter inside
+        # the framework, even if sys.executable points to
+        # the stub executable in ${sys.prefix}/bin
+        # See http://groups.google.com/group/python-virtualenv/
+        #                              browse_thread/thread/17cab2f85da75951
+        shutil.copy(
+                os.path.join(
+                    prefix, 'Resources/Python.app/Contents/MacOS/%s' % os.path.basename(sys.executable)),
+                py_executable)
 
         # Copy the framework's dylib into the virtual
         # environment
         virtual_lib = os.path.join(home_dir, '.Python')
 
         if os.path.exists(virtual_lib):
             os.unlink(virtual_lib)
         copyfile(
@@ -1367,145 +823,70 @@ def install_python(home_dir, lib_dir, in
                 os.unlink(pth)
             os.symlink(os.path.basename(py_executable), pth)
 
     if sys.platform == 'win32' and ' ' in py_executable:
         # There's a bug with subprocess on Windows when using a first
         # argument that has a space in it.  Instead we have to quote
         # the value:
         py_executable = '"%s"' % py_executable
-    cmd = [py_executable, '-c', """
-import sys
-prefix = sys.prefix
-if sys.version_info[0] == 3:
-    prefix = prefix.encode('utf8')
-if hasattr(sys.stdout, 'detach'):
-    sys.stdout = sys.stdout.detach()
-elif hasattr(sys.stdout, 'buffer'):
-    sys.stdout = sys.stdout.buffer
-sys.stdout.write(prefix)
-"""]
+    cmd = [py_executable, '-c', 'import sys; print sys.prefix']
     logger.info('Testing executable with %s %s "%s"' % tuple(cmd))
-    try:
-        proc = subprocess.Popen(cmd,
+    proc = subprocess.Popen(cmd,
                             stdout=subprocess.PIPE)
-        proc_stdout, proc_stderr = proc.communicate()
-    except OSError:
-        e = sys.exc_info()[1]
-        if e.errno == errno.EACCES:
-            logger.fatal('ERROR: The executable %s could not be run: %s' % (py_executable, e))
-            sys.exit(100)
-        else:
-          raise e
-
-    proc_stdout = proc_stdout.strip().decode("utf-8")
-    proc_stdout = os.path.normcase(os.path.abspath(proc_stdout))
-    norm_home_dir = os.path.normcase(os.path.abspath(home_dir))
-    if hasattr(norm_home_dir, 'decode'):
-        norm_home_dir = norm_home_dir.decode(sys.getfilesystemencoding())
-    if proc_stdout != norm_home_dir:
+    proc_stdout, proc_stderr = proc.communicate()
+    proc_stdout = os.path.normcase(os.path.abspath(proc_stdout.strip()))
+    if proc_stdout != os.path.normcase(os.path.abspath(home_dir)):
         logger.fatal(
             'ERROR: The executable %s is not functioning' % py_executable)
         logger.fatal(
             'ERROR: It thinks sys.prefix is %r (should be %r)'
-            % (proc_stdout, norm_home_dir))
+            % (proc_stdout, os.path.normcase(os.path.abspath(home_dir))))
         logger.fatal(
             'ERROR: virtualenv is not compatible with this system or executable')
         if sys.platform == 'win32':
             logger.fatal(
-                'Note: some Windows users have reported this error when they '
-                'installed Python for "Only this user" or have multiple '
-                'versions of Python installed. Copying the appropriate '
-                'PythonXX.dll to the virtualenv Scripts/ directory may fix '
-                'this problem.')
+                'Note: some Windows users have reported this error when they installed Python for "Only this user".  The problem may be resolvable if you install Python "For all users".  (See https://bugs.launchpad.net/virtualenv/+bug/352844)')
         sys.exit(100)
     else:
         logger.info('Got sys.prefix result: %r' % proc_stdout)
 
     pydistutils = os.path.expanduser('~/.pydistutils.cfg')
     if os.path.exists(pydistutils):
         logger.notify('Please make sure you remove any previous custom paths from '
                       'your %s file.' % pydistutils)
     ## FIXME: really this should be calculated earlier
-
-    fix_local_scheme(home_dir)
-
     return py_executable
 
-def install_activate(home_dir, bin_dir, prompt=None):
-    home_dir = os.path.abspath(home_dir)
+def install_activate(home_dir, bin_dir):
     if sys.platform == 'win32' or is_jython and os._name == 'nt':
-        files = {
-            'activate.bat': ACTIVATE_BAT,
-            'deactivate.bat': DEACTIVATE_BAT,
-            'activate.ps1': ACTIVATE_PS,
-        }
-
-        # MSYS needs paths of the form /c/path/to/file
-        drive, tail = os.path.splitdrive(home_dir.replace(os.sep, '/'))
-        home_dir_msys = (drive and "/%s%s" or "%s%s") % (drive[:1], tail)
-
-        # Run-time conditional enables (basic) Cygwin compatibility
-        home_dir_sh = ("""$(if [ "$OSTYPE" "==" "cygwin" ]; then cygpath -u '%s'; else echo '%s'; fi;)""" % 
-                       (home_dir, home_dir_msys))
-        files['activate'] = ACTIVATE_SH.replace('__VIRTUAL_ENV__', home_dir_sh)
-
+        files = {'activate.bat': ACTIVATE_BAT,
+                 'deactivate.bat': DEACTIVATE_BAT}
+        if os.environ.get('OS') == 'Windows_NT' and os.environ.get('OSTYPE') == 'cygwin':
+            files['activate'] = ACTIVATE_SH
     else:
         files = {'activate': ACTIVATE_SH}
-
-        # suppling activate.fish in addition to, not instead of, the
-        # bash script support.
-        files['activate.fish'] = ACTIVATE_FISH
-
-        # same for csh/tcsh support...
-        files['activate.csh'] = ACTIVATE_CSH
-
     files['activate_this.py'] = ACTIVATE_THIS
-    if hasattr(home_dir, 'decode'):
-        home_dir = home_dir.decode(sys.getfilesystemencoding())
-    vname = os.path.basename(home_dir)
     for name, content in files.items():
-        content = content.replace('__VIRTUAL_PROMPT__', prompt or '')
-        content = content.replace('__VIRTUAL_WINPROMPT__', prompt or '(%s)' % vname)
-        content = content.replace('__VIRTUAL_ENV__', home_dir)
-        content = content.replace('__VIRTUAL_NAME__', vname)
+        content = content.replace('__VIRTUAL_ENV__', os.path.abspath(home_dir))
+        content = content.replace('__VIRTUAL_NAME__', os.path.basename(os.path.abspath(home_dir)))
         content = content.replace('__BIN_NAME__', os.path.basename(bin_dir))
         writefile(os.path.join(bin_dir, name), content)
 
-def install_distutils(home_dir):
-    distutils_path = change_prefix(distutils.__path__[0], home_dir)
+def install_distutils(lib_dir, home_dir):
+    distutils_path = os.path.join(lib_dir, 'distutils')
     mkdir(distutils_path)
     ## FIXME: maybe this prefix setting should only be put in place if
     ## there's a local distutils.cfg with a prefix setting?
     home_dir = os.path.abspath(home_dir)
     ## FIXME: this is breaking things, removing for now:
     #distutils_cfg = DISTUTILS_CFG + "\n[install]\nprefix=%s\n" % home_dir
     writefile(os.path.join(distutils_path, '__init__.py'), DISTUTILS_INIT)
     writefile(os.path.join(distutils_path, 'distutils.cfg'), DISTUTILS_CFG, overwrite=False)
 
-def fix_local_scheme(home_dir):
-    """
-    Platforms that use the "posix_local" install scheme (like Ubuntu with
-    Python 2.7) need to be given an additional "local" location, sigh.
-    """
-    try:
-        import sysconfig
-    except ImportError:
-        pass
-    else:
-        if sysconfig._get_default_scheme() == 'posix_local':
-            local_path = os.path.join(home_dir, 'local')
-            if not os.path.exists(local_path):
-                os.mkdir(local_path)
-                for subdir_name in os.listdir(home_dir):
-                    if subdir_name == 'local':
-                        continue
-                    os.symlink(os.path.abspath(os.path.join(home_dir, subdir_name)), \
-                                                            os.path.join(local_path, subdir_name))
-
 def fix_lib64(lib_dir):
     """
     Some platforms (particularly Gentoo on x64) put things in lib64/pythonX.Y
     instead of lib/pythonX.Y.  If this is such a platform we'll just create a
     symlink so lib64 points to lib
     """
     if [p for p in distutils.sysconfig.get_config_vars().values()
         if isinstance(p, basestring) and 'lib64' in p]:
@@ -1524,90 +905,70 @@ def resolve_interpreter(exe):
     if os.path.abspath(exe) != exe:
         paths = os.environ.get('PATH', '').split(os.pathsep)
         for path in paths:
             if os.path.exists(os.path.join(path, exe)):
                 exe = os.path.join(path, exe)
                 break
     if not os.path.exists(exe):
         logger.fatal('The executable %s (from --python=%s) does not exist' % (exe, exe))
-        raise SystemExit(3)
-    if not is_executable(exe):
-        logger.fatal('The executable %s (from --python=%s) is not executable' % (exe, exe))
-        raise SystemExit(3)
+        sys.exit(3)
     return exe
 
-def is_executable(exe):
-    """Checks a file is executable"""
-    return os.access(exe, os.X_OK)
-
 ############################################################
 ## Relocating the environment:
 
 def make_environment_relocatable(home_dir):
     """
     Makes the already-existing environment use relative paths, and takes out
     the #!-based environment selection in scripts.
     """
-    home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir)
-    activate_this = os.path.join(bin_dir, 'activate_this.py')
+    activate_this = os.path.join(home_dir, 'bin', 'activate_this.py')
     if not os.path.exists(activate_this):
         logger.fatal(
             'The environment doesn\'t have a file %s -- please re-run virtualenv '
             'on this environment to update it' % activate_this)
     fixup_scripts(home_dir)
     fixup_pth_and_egg_link(home_dir)
     ## FIXME: need to fix up distutils.cfg
 
 OK_ABS_SCRIPTS = ['python', 'python%s' % sys.version[:3],
                   'activate', 'activate.bat', 'activate_this.py']
 
 def fixup_scripts(home_dir):
     # This is what we expect at the top of scripts:
     shebang = '#!%s/bin/python' % os.path.normcase(os.path.abspath(home_dir))
     # This is what we'll put:
     new_shebang = '#!/usr/bin/env python%s' % sys.version[:3]
-    activate = "import os; activate_this=os.path.join(os.path.dirname(os.path.realpath(__file__)), 'activate_this.py'); execfile(activate_this, dict(__file__=activate_this)); del os, activate_this"
-    if sys.platform == 'win32':
-        bin_suffix = 'Scripts'
-    else:
-        bin_suffix = 'bin'
-    bin_dir = os.path.join(home_dir, bin_suffix)
-    home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir)
+    activate = "import os; activate_this=os.path.join(os.path.dirname(__file__), 'activate_this.py'); execfile(activate_this, dict(__file__=activate_this)); del os, activate_this"
+    bin_dir = os.path.join(home_dir, 'bin')
     for filename in os.listdir(bin_dir):
         filename = os.path.join(bin_dir, filename)
         if not os.path.isfile(filename):
             # ignore subdirs, e.g. .svn ones.
             continue
         f = open(filename, 'rb')
-        try:
-            try:
-                lines = f.read().decode('utf-8').splitlines()
-            except UnicodeDecodeError:
-                # This is probably a binary program instead
-                # of a script, so just ignore it.
-                continue
-        finally:
-            f.close()
+        lines = f.readlines()
+        f.close()
         if not lines:
             logger.warn('Script %s is an empty file' % filename)
             continue
         if not lines[0].strip().startswith(shebang):
             if os.path.basename(filename) in OK_ABS_SCRIPTS:
                 logger.debug('Cannot make script %s relative' % filename)
             elif lines[0].strip() == new_shebang:
                 logger.info('Script %s has already been made relative' % filename)
             else:
                 logger.warn('Script %s cannot be made relative (it\'s not a normal script that starts with %s)'
                             % (filename, shebang))
             continue
         logger.notify('Making script %s relative' % filename)
         lines = [new_shebang+'\n', activate+'\n'] + lines[1:]
         f = open(filename, 'wb')
-        f.write('\n'.join(lines).encode('utf-8'))
+        f.writelines(lines)
         f.close()
 
 def fixup_pth_and_egg_link(home_dir, sys_path=None):
     """Makes .pth and .egg-link files use relative paths"""
     home_dir = os.path.normcase(os.path.abspath(home_dir))
     if sys_path is None:
         sys_path = sys.path
     for path in sys_path:
@@ -1756,519 +1117,377 @@ def create_bootstrap_script(extra_text, 
     py_exe = 'python%s' % python_version
     content = (('#!/usr/bin/env %s\n' % py_exe)
                + '## WARNING: This file is generated\n'
                + content)
     return content.replace('##EXT' 'END##', extra_text)
 
 ##EXTEND##
 
-def convert(s):
-    b = base64.b64decode(s.encode('ascii'))
-    return zlib.decompress(b).decode('utf-8')
-
 ##file site.py
-SITE_PY = convert("""
-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
-Q7wQmAIMcman2gOwRiH4P2ts6wE=
-""")
+SITE_PY = """
+eJzVPGtz2ziS3/krsHSlKGVkOo/ZqS1nPFdO4sx4z5N4J5na3HpSWkqCJI4pkkOQlrVXd7/9+gGA
+AEn5sbP74VSpWCKARqPRbzQYhuFpWcp8ITbFosmkUDKp5mtRJvVaiWVRiXqdVovDMqnqHTydXycr
+qURdCLVTMfaKg+Dp7/wET8WndaoMCvAtaepik9TpPMmynUg3ZVHVciEWTZXmK5HmaZ0mWfoP6FHk
+sXj6+zEIznMBK89SWYkbWSmAq0SxFJe7el3kYtSUuObn8R+Tl+OJUPMqLWvoUGmcgSLrpA5yKReA
+JvRsFJAyreWhKuU8XaZz23FbNNlClFkyl+Lvf+elUdcoClSxkdu1rKTIARmAKQFWiXjA17QS82Ih
+YyFey3mCE/DzllgBQ5vgnikkY16IrMhXsKZczqVSSbUTo1lTEyBCWSwKwCkFDOo0y4JtUV2rMWwp
+7ccWHomE2cNfDLMHrBPn73MO4PghD37O09sJwwbuQXD1mtmmksv0ViQIFn7KWzmf6mejdCkW6XIJ
+NMjrMXYJGAElsnR2VNJ2fKt36LsjwspyZQJzSESZO3MjjYiD81okmQK2bUqkkSLM38pZmuRAjfwG
+pgOIQNJgaJ5Fqmo7D61OFACgwn2sQUo2Sow2SZoDs/6YzAntv6b5otiqMVEAdkuJXxtVu+sfDRAA
+ejsEmAS4WWY3mzxLr2W2GwMCnwD7Sqomq1EgFmkl53VRpVIRAEBtJ+QtID0RSSU1CZkzjdxOiP5E
+kzTHjUUBQ4HHRiTJMl01FUmYWKbAucAV7z78JN6evT4/fa95zABjmV1tAGeAQhvt4AQTiKNGVUdZ
+AQIdBxf4RySLBQrZCucHvNoOR/fudDCCtZdxd4yz4UB2vbl6GlhjDcqE5gpo3H/DkIlaA33+5579
+DoLTfVShhfO37boAmcyTjRTrhPkLOSP4VsP5Li7r9SvgBoVwaiCVws1BBFOEByRxaTYqcilKYLEs
+zeU4AArNqK+/i8AK74v8kPa6wwkAoQpyaHSejWnGXMJC+7Beob4wnXe0Mt0lsPu8KSpSHMD/+Zx0
+UZbk14SjIobibzO5SvMcEUJeCKKDiCZW1ylw4iIWF9SL9ILpJCLWXtwTRaIBXkKmA56Ut8mmzOSE
+xRd1691qhCaTtTB7nTHHQc+a1CvtWrvUQd57EX/ucB2hWa8rCcCbmSd0y6KYiBnobMKmTDYsXvW2
+IM4JBuSJBiFPUE8Yi9+BoqdKNRtpG5FXQLMQQwXLIsuKLZDsOAiEOMBOxij7zAmt0Ab/A1z8P5P1
+fB0EzkwWsAaFyO8DhUDAJMhcc7VGwuM2zcpdJZPmrCmKaiErmuphxD5ixB/YGdcavC9qbdR4ubjL
+xSatUSXNtMlM2eLlUc368RWvG5YBllsRzUzXlk4bXF5WrpOZNC7JTC5REvQmvbLbDnMGA3OSLa7F
+hq0MtAFZZMoWZFixoNJZ1pKcAIDBwpfkadlk1Ekhg4kEJtqUBH+ToEkvtLME7M1mOUCFxOZ7DvYH
+cPsHiNF2nQJ95gABNAxqKdi+WVpX6CC0+ijwjb4Zz/MDp54vtW3iKZdJmmkrn+TBOT08qyoS37ks
+cdREE0PBCvMaXbtVDnREMQ/DMAiMO7RT5mthv02nsyZFezedBnW1OwbuECjkAUMX72GhNB23LKti
+g80WvY+gD0Av44jgQFySopDs43rM9Aop4Grl0nRF8+twpEBVElz+dPbu/PPZR3EirlqtNOmqpC8w
+51meAGeSUge+6EzbqiPoiborRfUl3oGFpn0Fk0SjSQJlUjfAfoD6p6qhZljG3GsMzt6fvr44m/78
+8eyn6cfzT2eAIJgKGRzQktHCNeDzqRj4GxhroWJtIoPeCHrw+vSjfRBMUzX9lV3jExZ27QddHX/9
+RZyciOjX5CaJAvBF2q68Lz8SW37alRKG1vBnVKhxECzkElj4WiKjj56SfznmAUAX6Floe/drkeam
+nZq9KUgORzQCcJhO51miFHaeTiOgFg0Y+MCAmJ1U5N4RDCx37tCxRgU/lQTq5jhkgv8NoJjMaByi
+wSi6Q0wnYPvNPFGSe9HyYdx0irI/nY70hCAUxLbguLA4R8J0QdmvUvAPaftRF8xUkeFPhI/SRFKA
+IQpqG9wkHYLEN0nWSDVyFgVEHI06ZESFlSpiCjD1I7Bo7daNx11qgsuDCGE3IF9WgDaqOpTDzwH4
+DSD2JhjCgIljGKYZYvpn9tgJB3DdIlSbSnWgsJYRl2eX4uWzF4foFkDstrDU8bqjpUvzRtqHS9it
+lawdhHlUNCH+Hrt0WaK+wqfHd8PcxHZn+qyw1FtcyU1xIxeALTKws8viJ2qBCBfWMU9gF0E/kl1l
+PWb8rwTjOV49SAvaYKDehqCY/Tdbf8BBtcwVaAMOUInUOnpmk1JWxU2KRnu2041gc0BjoeUxDkLg
+bJzHZGhawA6BN5kjpbYyAp1UNez4Ed4IErX2otVuMYG7QHX5hb5e58U2n3JEeYKabzS2rIuCpZkX
+O7RbcCDegS0AJAsIkFqiMRRwnQXK1iEgD8uH5QJlyUcHQGAwFYU9DiwTMtESOfrCaRHG+JUg4a0k
+2t0bMwWFLIYYDiRqje0DoyUQEizOKjirGjSToayZbjCxQxKf6y5iDuV8AB0qxmC7RhoadzL0uzoG
+5SwuXKXkjEOz+PnzZ2YbtaY8BSI2w0WjKV6SxYrLHVi3FHSC8Ww460FssAUnEcA0SrOmOPwoipK9
+GtjPSy3bYIwhSqrr8vjoaLvdxjpKL6rVkVoe/fFP33zzp2esExcL4h9YjiMtOmUVH1Ebeobxt8YC
+fWd2rsOPae5zI8EaSfJuyKVD/L5v0kUhjg/HVn8iF7e2Ev83/gQokKmZlKkMtA1bjJ6owyfxSxWK
+J2Lk9h2N2TnQwaa1YkaDQhuoJBhRF2COwXmYF01eR44iVeIrsG4Q6S7krFlFdnLPRpofsFSU05Hl
+gcPnXxADnzMMXxlTPEUtQWyR5svCIf1PzDYJuShaQyB50UT1otDdsBYzxF08XN6tw+cIjVlhqpA7
+UCL8Lg8WQNu5Lzn40f4l2j3HvzQfzxAYSx8Y5tXe3QgFh3DBvZi4UudwNbqdIE1bVs2gYFzVCAoa
+PLUZU1uDIxsZIUj0bkzQzBurewCdOhk4E2ebXYAe7jw9a9dlBccTQh44Ec/piQQ/9bjX9oy3tsky
+Sox0eNSjCgP2NhrtdAF8OTIAJiKsfg65p96W8w+dTeE9GABWcC4FGWzZYyZscX3A8CAcYKee1d83
+mmk8BAI3ifo/DDhhfMITVAqEqRz5jLuPwy1tOX/UQXi/wSGeMrtEEq32yFZXdwzK1J12aZnmqHqd
+PYrnWQFOsVWKxEdtu+8rUCyCj4dsmRZATYaWHE6nE3L2PPmLdD/MQq0ajNfddAZitEkVGTck0xr+
+A6+C0gSU0wFaEjQL5qFC5i/sXyBydr36yx72sIRGhnC77vNCegZDwzHtBwLJqJMaIAQ5kLAvi+Q5
+sjbIgMOcDfJkG5rlXuEmGLECMXMMCGkZwJ0avfgGn8R4kEACipBvayVL8ZUIYfu6kvow1f0v5VKT
+CBg5HchT0BmEEze74GQWTjqZBp+h/RwDHTmUBXDwDDweN1/usrlhWpv4AF/d19sWKVDIlAsJxy6q
+Xwxh3JzsH06cHi2xzCSGobyJvJMRM9M4sNutQcOGGzDennfn0o/dhAWOHUWFeiE3txD+RVWq5oWK
+ML7tpS7cj+aKPm0sthfpLIQ/3gaE4y8eJJl10cG8xSKptmkekYrRKzzxiddDxy7Ws0JHHyneOQJU
+MLV39K4CFqYzviNgeJRVCJtlpLRf3gd750pDC5eHh55fe3X88kt/+ZN9KRj7GSbm2W1dJQrpmTFZ
+mW2Rnn0Li2oRFpfkO31Kp09x0Y+vCgVhnvjw8bNAQnACc5vsHrf0liURm3vX5H0M6qB57iVXZ3XE
+LoAI6i1klKPo8Yz5cGQfu7g7FvYIII9imDs2xUDSfPLPwLlro2COw8Uux0RXV6jxA83ffD0dSF26
+SH7zdXjPLB1iDIn9qOOr2Znp9FwMLtsMqWSSkTfgDKK0X97yju1TjlnlUoCmmezLgFuIH9NulHoL
+v9e9F9mZzwHRA+LgYvYrRJNKJ6BukjSjRDigcXiIes4EwhzbD+PjQbobZUwagU/xbDIYq6irZ7Ax
+EUfe4/5ytOdyapKzAxGj+ZSJ6qNyoM+t22MX7yzaPXLbL/uDtvTfpLMeCchbTThAwAeuwRwJ/v9f
+CSsrhqaV1bij9ZW8W88bYA9Qh3sckTvckP7UfIK0NM4Ey50ST1FAn4otnQNTsg2PDgDKgv2MATi4
+jfo08U1TVXwmSHJeyuoQD8kmAktgjKdBlTV9MEfvZY2Y2G5zSl46BRPFkOqMdDrSriRqPclhkV0X
+Jokh85u0grGgVUbRDx9+PIv6DKCnwUHD4Nx9NFzycDuFcB/BtJEmTvSYMUyhxwz556Uq8ji0q1zN
+Oa1JEWqy9QnbywyayHJ4D+7JEXgneHz4iTHbfC3n11NJB7rIpjjUyZK+wWbExJ7z+oU1KllSdRCs
+ZJ41SCt29LCsa9nkc0qY1xLsua7BxJoMOqblhNAyS1ZiRIMXmIzQ3Ej5ipuk0t5OWRVY9SeadHG0
+ShdC/tYkGQZ6crkEXPA0QzfFPD3lJMRbPmnmajAl502V1jsgQaIKfRhEh9JOx9mOFzrykOS8PxMQ
+j6mPxUdcNrYz4RaGXCZc9FPguEiMxHCAOa1D7qLn0J4XU5x1SsWTE0aqf1BLj4PuDAUACAEorD8c
+61yO3yKpyT1xoj13iYpa0iOlG3sW5HEglNEYY1/+TT99RnR5aw+Wq/1Yru7GctXFcjWI5crHcnU3
+lq5I4MbaNIaRhKFURjfPPVgF4WYheJqzZL7mflhUh8VzAFGUJqAzMsW1pV6ugw98CAipbecEkh62
+VQ0pV+tVBSdFNUjkfjzV0MGjqQp2BlONhB7MSzE+277KDn/sURxTDc6MhrO8LZI6iT25WGXFDMTW
+ojtpAUxEt8iDs2f5zXTG+b6OpQov/+vTDx/eY3cEFZrzbhqGm4iGBZcyeppUK9WXpjbYKIEdqadf
+mUHDNMCDB+ZaeJYD/u8tHfkj44gtHVkXogQPgGptbDe3IiWKOs916Yp+zkzOpw8nIszrsF3UHiKd
+Xl6+Pf10GlISKPzf0BUYQ1tfOlx8TA/boe+/ud0txXEMCLXOpbTGz12TR+uWI+63sQZsx+199qXz
+4MVDDPZgWOqv8t9KKdgSIFSs04GPIdSDg5/fFSb06GMYsVeS5Z61sLNi2xzZc1wUR/SHEtHdCfzT
+L4wxpkAA7UKNTGTQBlMdpW/N6x0UdYA+0Nf73SFYN/TqRjI+Re0iBhxAh7K22373z8vcs9FTsn59
+9v35+4vz15enn35wXEB05T58PHohzn78LKhgAA0Y+0QJnpXXWJoChsW9QSIWBfxrML2xaGpOSsKo
+txcXOne/wTsEWFSKNieG51zXYqFxjoaznvahLkhBjDIdIDmXNah+gy5zYLy04YsCqtCFp3QHZIbO
+aqNDL30Jx1zWoYPOGKQPOrukYBBccwRNVB5cm6iw4jMhfYFlAClto22lQEY5qN75sXMiYvLtXmKO
+BsOTdrBW9FeRi2v0JVZllkIk9yqysqSHYb1Eyzj6oT3yZLyGNKAzHGbWHXnVe7FAq/Uq4rXp8eOW
+0X5rAMOWwd7CunNJ9QJUGIvVTiLCTnxyEMlb+Gq3Xu+Bgg3Do58aN9EwXQqrTyC4FusUAgjgyTVY
+X4wTAEJnJ/wE9LGTHZAFHtdHbzaLw79EmiB+719+GeheV9nh30QJUZDg2pJogJhu57cQ+MQyFmcf
+3o0jRo5qNcVfGqy7BoeEsnyOtFNBC5+pTkdKZktdcODrA2zQfgI1d4ZXsqz08GHXOEIJeKJG5DU8
+UYZ+Edb/WNgTXMq4AxpLyi1meDXLPZg2nwPxcS2zTFchn7+9OAPfEavcUYL4nOcMpuN8CR6q6mos
+vjrWAYVHrtBcIRtX6MLSsfsi9roNZmZR5Gi0d1Jv94myn/1RvVRnlaTKRXuEy2ZYTp13jNwM22F2
+lrm73w3p7HYjuqPkMGNMLyuqa/Q5AzianiYcGEHEhJX0JtnMp4tpXptCtiydgzYFxQtqdQKigiTG
+62LEf0XO6d6iUuaWCTwsd1W6WteYUofBMVW4Y/cfTz9fnL+nkvEXL1vfe4BFJxQPTLi44AQrxzDn
+AV/cajDkrel0iHN1E8JAHQR/uk1ctXDCE/TGcXoR/3Sb+JrPiRMP8gpATTVlV0gwDHCGDUlPKxGM
+q42G8eNWhrWY+WAoI4m3CnQBgLu+Pj/anh2DQtkf0/iIs4plqWk4MoPdSqXuR69xWeLhymI03Ala
+hyTMfGYw9LrXsq8myv30ZBFvHAJG/d7+HKZqqNdVL8dhtn3cQsGttrS/5E7G1Ok3z1GUgYgjd/DY
+ZbJhVay7Mwd61bU9YOJbja6RxEGFHv6Sh9rP8DCxxO5FK2Yg3W4gU4D5DKnvZTTgSaFdAAVCRaEj
+R3In46cvvDU6NuH+NWrdBRbyB1CEukSTSv+LCjgRvvzG7iM3EVqoSo9F5PgrucwLWz+En+0afcvn
+/hoHZYBSmSh2VZKv5IhhTQzMr3xi70nEkrb1OOYq7VRLaO4GD/V2D4P3xWL49MRg1uGDXr9ruetq
+I5862GHwgoAPoUq2oN3Lph7xXu09LMDu+gh2FGGS5LdoD73uQU/DQr/rt4EzHPwwsYx7ae1V5/JJ
+ZBu0XzmvIGCqFR2WOFbYeIiuYW5t4ElrhUP7VFeM2N8DN3qcOlQXLqPgQvVWGOoOnVA/5LslfF0u
+pdrl9uqDblvIG5kV4BZBxIWl6b/a0vRxPJjquAevFhUk6C/aHU/ya/IQ3/z1fCLevP8J/n8tP0BM
+gdexJuJvgIB4U1QQW/GVQLqrjWXtNQdNRaPwzhZBozQ9X2tHZ+XSWwceCeh6e7/Q3uoHgTWG1Ybf
+pQAo8hrpmmxrHU0VOfw211z6bphxkYZ2JdSNSIb9xf9YMH+ke8brepOhonSSBO12XoUX52/O3n88
+i+tb5CPzM3SSCH79C65IH5FWeBw0EfbJvMEnXxyP8QeZlQMOo465zEUCjLlEBG55aeMsvqqfWN86
+qTBwFuVuUcxj7AlcxXeX6i14kGMnvLrXwnnmBWGNxvoQqXVj8TFQQ/zSlfgQOtIYvSYaSQglM7xE
+w4/jcNgGTQRlduHP0+vtwk0M69sQtMAupu2qR/5wq3TWTGcNz2UmQu3E7oS5I5elidrM5u7dqQ+5
+0C9bAHVCmX65TJqsFjKHqILCXLr1DlrVve7EcsLcwrqc7gBRoiLbJjvl1JokSoQ4a0gXd/FIgnJm
+EIX+mFyz7sV7WKLhO5oAnRCl2KFwhqpmvmY55nBAq7ve0fs2zV++iHpE5kk5Rpy3ThysE10mxmgl
+a71+fjAaXz1vzSjlZefeZcd5CRbG5ZQDUJ/l06dPQ/Ef91t+RiXOiuIaXBKAPRQQigtq3mOz9eLs
+bvW9WtMSA0vO1/IKHnyh/LF93uSUnLtjKG2ItH8NjAj3JrL8aPp3bCCnrSo+auUefGSjbcfPeUqv
+VMHkikSVq99Mg4kXI1DEkqAbokTN0zTiQB32Y1c0eE8JE22aX+QtcHyKYCbYimdEHGau0buikkXL
+PRadExES4JBKiHg2uuhJN3UAz+nlTqM5Pc/Tuq2xf+YeH+o7yrV9U4rmK5FsUTLMOjrEcK68eaza
+epfFnSzqeevF/MpNuXVWyc334Q6sDZJWLJcGU3hoNmleyGpujCruWDpPaweM6YdweDC9IIYMUBwM
+oBSChifDsLASbVv/YPfFxfQDnaQempl0AU1tX7rD6ZEk79SRxXE7PyViLCEt35ovY5jlPSV2tT/g
+zSX+oNOKWGDtvRvAverV5PrOP1cwtC8CADj0nhmrIC07ejrCebmRhc9Mqx359hUBTj04hqeE201a
+1U2STfW99Cm6bFN7tKzxtFeE7rz8Zn0WcKgLcDUPdbE0+A6mzgTpibWOplwd4nMdnsfutRv/hkpZ
+oK/3wtPjmPR9xpfgHQ2OPb8yFzceovLN9YFe5b2L5YSqeqJxt1ax1wtPECJd80Vp2SEP+1FTGliu
+K/xQABkAgD/s+EVfdU6BnNI0rhvdl/rvAf3m67vAukpmsGiW8u2+4tEXl9wq1jbhz7JsfL41uJUo
+GQtz1VQLHt/KQylhlW9vEptah+6FCGh++JLvWPADTtMinOzwiYq0m2048i5aWfzuIlXbKfinqKRH
+DdMK3TwsM1wn3ILi2pTHNhgybxLAFO3ILT7BT309WJad4MtqkKCH9XV01/J5/F1r1z0Cu3Jz9tJb
+u3/9wqWBHrufX4ZowC6oJsSDKjotRtN/jehO9LHgcHpDf5b2tXmc5SAe1KhNNEtukrn7HQ+nD/mt
+e219oHM5wt31zpr2Xhs27Nzn5D4380EcPrf33+h0daHZiw0WvYNlyvU6U7laqWmCr/CZkpdDZ8s9
+82Xs5jt6fYtM1M6YO7xRDyAMq+gqILfQD3YdPCl+lSAfzTpXpwVNTQVMTkWUShccvWrbCuBijlpp
+vEmKcElTmEnMN6imKitwR0L9wjk+Mxwqs2qBmghqk6hrg7oZMdHvH8Mp+KDaXL/hWJldHI86QAiu
+ynfe28E1gtOpbQN+edZeBEwnliFk3mwgPq7bO/D+2UQqvnNmoEtXuMFOjNSKXYdTXMRSyx8OUhil
+2O9fafPveTd33P4bW5X2cLaiETr8fszFQkfKDTent/YdOO67Fxb0HkOKiPjdCcJ2a7nP3vuHrTAv
+dCFFqIMWbtUvmeAXinFWBSuyHD4CuXevPPiVcVZnscNg0XCeuYqh/1YBvDVHhnboZUE9Lui/Fshn
+hnZ+X29YZullovd0tlQ84R6Diqedbdy68ljEco8r7xcqPtKV9+A/0JXXr3YCa6Lx0fpgsHTxHp+f
+1YT7nqSWEWDMFIiEyfbOW3aMPRy5hYDgkKe3oX17IOtM53aBMRPIkf0XaBAIfh+ScqumvPeVmHmH
+fG1fuujx9xcfXp9eEC2ml6dv/vP0ezoixrxVx2Y9ONbJi0Om9qFXkubGPfpYb2jyFtuBd4lxXbWG
+0GvvHYkMQBiuoR/a0K4ic5v3DejVIvcHAeJ3L7sDdZ/KHoTcc7503at7mNepHQv0Uy70Mb+ccxnz
+yGRNWRzalKhpb7NYWkZ7Qf6+jXNKbvrqRDul+lVVexIQY1v4RTuAySvkL5u7MlW8NkPCjkr3nc5U
+rYY3IMw9b5DCuXReN0RvGmJQtf/y6AqUXYI5eHYYJ/ZFjNSP83TKvmEU8/BzGRuCeFcQwv76XGFf
+yGwPFYKAFZ5+mQ4jYvSfzmzb06AnSlwd0mWnQ1Q2X+wv3DPt5P41xTOf2r6VQpnjUsx3Q+dlk7nn
+OHZMbwA5f5QWLJZOdS1oviOgcyueCtgbfSZWiLOdiCBK1IcVWLBDdNRvlHGQR7vpYG9o9Uwc7rsK
+414FEeL5/o6Lzm0TPeIFj1D3jFCNuXDgWGCsGdl3x0V8R5A5ryzoNRSe84HnGfrlh/D15ur5sU1K
+Ir9js/uSA6R96Bj2q7aq/M4XHzmjiVeqCdUOYKHKuAv+S+iw5lLsD3B6NbJ7giBz4MSQQq99+Fzd
+jPBeshp2EbV8dwwLEqMnakyLcqqKNe72ybi32FZl9WFwgfT9MHraD0AhlGHfBD/8rg1Qz890PDhr
+6G1x1uHEa4WOPNAhuc8LPMJ4fS123eF0relBw6lc3BaZc4cu7+n9BrFmr4F7eYmO/bagu/KWB/bY
+fr4gNjz++QPG98sp7PAXdznUttfLwUsJ7MRiAQ4ez3YoZB7HYF1AYY5ITWPtppFwvPjdktHhpnZp
+yBXo8FFND74JkgILcmKn2vJbYxD8H2/QG9E=
+""".decode("base64").decode("zlib")
 
 ##file ez_setup.py
-EZ_SETUP_PY = convert("""
-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
-BDaonX65d/fwEjNqlDjLVIvM9X+XVxF7
-""")
+EZ_SETUP_PY = """
+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
+178BYnMUkw==
+""".decode("base64").decode("zlib")
 
 ##file distribute_setup.py
-DISTRIBUTE_SETUP_PY = convert("""
-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
-""")
+DISTRIBUTE_SETUP_PY = """
+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
+""".decode("base64").decode("zlib")
 
 ##file activate.sh
-ACTIVATE_SH = convert("""
-eJytVVFvokAQfudXTLEP2pw1fW3jg01NNGm1KV4vd22zrDDIJrhrYJHay/33m0VEKGpyufIg7s63
-M9/OfDO0YBaKBAIRISzTRMMcIU3Qh0zoEOxEpbGHMBeyxz0t1lyjDRdBrJYw50l4YbVgo1LwuJRK
-Q5xKEBp8EaOno41l+bg7Be0O/LaAnhbEmKAGFfmAci1iJZcoNax5LPg8wiRHiQBeoCvBPmfT+zv2
-PH6afR/cs8fBbGTDG9yADlHmSPOY7f4haInA95WKdQ4s91JpeDQO5fZAnKTxczaaTkbTh+EhMqWx
-QWl/rEGsNJ2kV0cRySKleRGTUKWUVB81pT+vD3Dpw0cSfoMsFF4IIV8jcHqRyVPLpTHrkOu89IUr
-EoDHo4gkoBUsiAFVlP4FKjaLFSeNFEeTS4AfJBOV6sKshVwUbmpAkyA4N8kFL+RygQlkpDfum58N
-GO1QWNLFipij/yn1twOHit5V29UvZ8Seh0/OeDo5kPz8at24lp5jRXSuDlXPuWqUjYCNejlXJwtV
-mHcUtpCddTh53hM7I15EpA+2VNLHRMep6Rn8xK0FDkYB7ABnn6J3jWnXbLvQfyzqz61dxDFGVP1a
-o1Xasx7bsipU+zZjlSVjtlUkoXofq9FHlMZtDxaLCrrH2O14wiaDhyFj1wWs2qIl773iTbZohyza
-iD0TUQQBF5HZr6ISgzKKNZrD5UpvgO5FwoT2tgkIMec+tcYm45sO+fPytqGpBy75aufpTG/gmhRb
-+u3AjQtC5l1l7QV1dBAcadt+7UhFGpXONprZRviAWtbY3dgZ3N4P2ePT9OFxdjJiruJSuLk7+31f
-x60HKiWc9eH9SBc04XuPGCVYce1SXlDyJcJrjfKr7ebSNpEaQVpg+l3wiAYOJZ9GCAxoR9JMWAiv
-+IyoWBSfhOIIIoRar657vSzLLj9Q0xRZX9Kk6SUq0BmPsceNl179Mi8Vii65Pkj21XXf4MAlSy/t
-Exft7A8WX4/iVRkZprZfNK2/YFL/55T+9wm9m86Uhr8A0Hwt
-""")
-
-##file activate.fish
-ACTIVATE_FISH = convert("""
-eJydVm1v4jgQ/s6vmA1wBxUE7X2stJVYlVWR2lK13d6d9laRk0yIr8HmbIe0++tvnIQQB9pbXT5A
-Ys/LM55nZtyHx5RrSHiGsMm1gRAh1xhDwU0Kng8hFzMWGb5jBv2E69SDs0TJDdj3MxilxmzPZzP7
-pVPMMl+q9bjXh1eZQ8SEkAZULoAbiLnCyGSvvV6SC7IoBcS4Nw0wjcFbvJDcjiuTswzFDpiIQaHJ
-lQAjQUi1YRmUboC2uZJig8J4PaCnT5IaDcgsbm/CjinOwgx1KcUTMEhhTgV4g2B1fRk8Le8fv86v
-g7v545UHpZB9rKnp+gXsMhxLunIIpwVQxP/l9c/Hq9Xt1epm4R27bva6AJqN92G4YhbMG2i+LB+u
-grv71c3dY7B6WtzfLy9bePbp0taDTXSwJQJszUnnp0y57mvpPcrF7ZODyhswtd59+/jdgw+fwBNS
-xLSscksUPIDqwwNmCez3PpxGeyBYg6HE0YdcWBxcKczYzuVJi5Wu915vn5oWePCCoPUZBN5B7IgV
-MCi54ZDLG7TUZ0HweXkb3M5vFmSpFm/gthhBx0UrveoPpv9AJ9unIbQYdUoe21bKg2q48sPFGVwu
-H+afrxd1qvclaNlRFyh1EQ2sSccEuNAGWQwysfVpz1tPajUqbqJUnEcIJkWo6OXDaodK8ZiLdbmM
-L1wb+9H0D+pcyPSrX5u5kgWSygRYXCnJUi/KKcuU4cqsAyTKZBiissLc7NFwizvjxtieKBVCIdWz
-fzilzPaYyljZN0cGN1v7NnaIPNCGmVy3GKuJaQ6iVjE1Qfm+36hglErwmnAD8hu0dDy4uICBA8ZV
-pQr/q/+O0KFW2kjelu9Dgb9SDBsWV4F4x5CswgS0zBVlk5tDMP5bVtUGpslbm81Lu2sdKq7uNMGh
-MVQ4fy9xhogC1lS5guhISa0DlBWv0O8odT6/LP+4WZzDV6FzIkEqC0uolGZSZoMnlpxplmD2euaT
-O4hkTpPnbztDccey0bhjDaBIqaWQa0uwEtQEwtyU56i4fq54F9IE3ORR6mKriODM4XOYZwaVYLYz
-7SPbKkz4i7VkB6/Ot1upDE3znNqYKpM8raa0Bx8vfvntJ32UENsM4aI6gJL+jJwhxhh3jVIDOcpi
-m0r2hmEtS8XXXNBk71QCDXTBNhhPiHX2LtHkrVIlhoEshH/EZgdq53Eirqs5iFKMnkOmqZTtr3Xq
-djvPTWZT4S3NT5aVLgurMPUWI07BRVYqkQrmtCKohNY8qu9EdACoT6ki0a66XxVF4f9AQ3W38yO5
-mWmZmIIpnDFrbXakvKWeZhLwhvrbUH8fahhqD0YUcBDJjEBMQwiznE4y5QbHrbhHBOnUAYzb2tVN
-jJa65e+eE2Ya30E2GurxUP8ssA6e/wOnvo3V78d3vTcvMB3n7l3iX1JXWqk=
-""")
-
-##file activate.csh
-ACTIVATE_CSH = convert("""
-eJx9U11vmzAUffevOCVRu+UB9pws29Kl0iq1aVWllaZlcgxciiViItsQdb9+xiQp+dh4QOB7Pu49
-XHqY59IgkwVhVRmLmFAZSrGRNkdgykonhFiqSCRW1sJSmJg8wCDT5QrucRCyHn6WFRKhVGmhKwVp
-kUpNiS3emup3TY6XIn7DVNQyJUwlrgthJD6n/iCNv72uhCzCpFx9CRkThRQGKe08cWXJ9db/yh/u
-pvzl9mn+PLnjj5P5D1yM8QmXlzBkSdXwZ0H/BBc0mEo5FE5qI2jKhclHOOvy9HD/OO/6YO1mX9vx
-sY0H/tPIV0dtqel0V7iZvWyNg8XFcBA0ToEqVeqOdNUEQFvN41SumAv32VtJrakQNSmLWmgp4oJM
-yDoBHgoydtoEAs47r5wHHnUal5vbJ8oOI+9wI86vb2d8Nrm/4Xy4RZ8R85E4uTZPB5EZPnTaaAGu
-E59J8BE2J8XgrkbLeXMlVoQxznEYFYY8uFFdxsKQRx90Giwx9vSueHP1YNaUSFG4vTaErNSYuBOF
-lXiVyXa9Sy3JdClEyK1dD6Nos9mEf8iKlOpmqSNTZnYjNEWiUYn2pKNB3ttcLJ3HmYYXy6Un76f7
-r8rRsC1TpTJj7f19m5sUf/V3Ir+x/yjtLu8KjLX/CmN/AcVGUUo=
-""")
+ACTIVATE_SH = """
+eJytVFFv2jAQfs+vuIU+QDWK+tqKB6oigdRC1bBOW1sZk1yIpWAj2yGj0/77ziFAUijStPIA2Hc+
+f/7u+64Bk0QYiEWKsMiMhRlCZjCCXNgEfKMyHSLMhOzw0IoVt+jDeazVAmbcJOdeA9Yqg5BLqSzo
+TIKwEAmNoU3Xnhfh9hQ0W/DbA/o0QKNBCyqNAOVKaCUXKC2suBZ8lqIpskQMz9CW4J+x8d0texo+
+Tr717thDbzLw4RWuwSYoi0z3cdvdY6m7DPy1VNoWibu9TDocB4eKeCxOwvgxGYxHg/F9/xiYXfAA
+0v7YAbBd6CS8ehaBLCktmmgSlRGpEVqiv+gPcBnBm0m+Qp6IMIGErxA4/VAoVIuFC9uE26L1ZSkS
+QMjTlCRgFcwJAXWU/sVKu8WSk0bKo+YC4DvJRGW2DFsh52WZWqIjCM4cuRAmXM7RQE5645H7WoPT
+Dl1LulgScozeUX/TC6jpbbVZ/QwG7Kn/GAzHoyPkF09r6xo9HzUxuDzWveDyoG2UeNCv4PJko8rw
+FsImZRvtj572wL4QLgLSBV8qGaGxOnOewXfYGhBgGsM24cu729sutDXb9uo/HvlzExdaY0rdrxmt
+Ys/63Z5Xgdr1GassGfO9koTqe7wDHxGNGw+Wi0p2h7Gb4YiNevd9xq7KtKpFd7j3inds0Q5FrBN7
+LtIUYi5St1/NMi7LKdZpDhdLuwZ6FwkTmhsTUMaMR2SNdc7XLaoXFrahqQdTqtUs6Myu4YoUu6vb
+guspCFm4ytsL6sNB8IFtu7UjFWlUnO00s7nhDWqssdth0Lu567OHx/H9w+TkjYWKd8ItyvlTAo+S
+LxBeanVf/GmhP+rsoR8a4EwpeEpTgRgin0OPdiQZdy7CctYrLcq5XR5BhMTa5VWnk+f5xRtasvrq
+gsZBx6jY5lxjh7sqnbrvnisQp1T6KNiX6fQV9m/D1GC9SvPEQ1v7g+WIrxjaMf9Js/QT5uh/ztB/
+n5/b2Uk0/AXm/2MV
+""".decode("base64").decode("zlib")
 
 ##file activate.bat
-ACTIVATE_BAT = convert("""
-eJyFUkEKgzAQvAfyhz0YaL9QEWpRqlSjWGspFPZQTevFHOr/adQaU1GaUzI7Mzu7ZF89XhKkEJS8
-qxaKMMsvboQ+LxxE44VICSW1gEa2UFaibqoS0iyJ0xw2lIA6nX5AHCu1jpRsv5KRjknkac9VLVug
-sX9mtzxIeJDE/mg4OGp47qoLo3NHX2jsMB3AiDht5hryAUOEifoTdCXbSh7V0My2NMq/Xbh5MEjU
-ZT63gpgNT9lKOJ/CtHsvT99re3pX303kydn4HeyOeAg5cjf2EW1D6HOPkg9NGKhu
-""")
+ACTIVATE_BAT = """
+eJyFUssKgzAQvAfyD3swYH+hItSiVKlGsalQKOyhauvFHOr/U+MzFcWc9jEzO7vkVLw+EmRZUvIt
+GsiCVNydED2e2YhahkgJJVUJtWwgL8qqLnJI0jhKBJiUQPsUv6/YRmJcKDkMlBGOcehOmptctgJj
+e2IP4cfcjyNvFOwVp/JSdWqMygq+MthmkwHNojmfhjuRh3iAGffncsPYhpl2mm5sbY+9QzjC7ylt
+sFy6LTEL3rKRcLsGicrXV++4HVz1jzN4Vta+BnsingM+nMLSiB53KfkBsnmnEA==
+""".decode("base64").decode("zlib")
 
 ##file deactivate.bat
-DEACTIVATE_BAT = convert("""
+DEACTIVATE_BAT = """
 eJxzSE3OyFfIT0vj4spMU0hJTcvMS01RiPf3cYkP8wwKCXX0iQ8I8vcNCFHQ4FIAguLUEgWIgK0q
 FlWqXJpcICVYpGzx2BAZ4uHv5+Hv6wq1BWINXBTdKriEKkI1DhW2QAfhttcxxANiFZCBbglQSJUL
 i2dASrm4rFz9XLgAwJNbyQ==
-""")
-
-##file activate.ps1
-ACTIVATE_PS = convert("""
-eJylWdmS40Z2fVeE/oHT6rCloNUEAXDThB6wAyQAEjsB29GBjdgXYiWgmC/zgz/Jv+AEWNVd3S2N
-xuOKYEUxM+/Jmzfvcm7W//zXf/+wUMOoXtyi1F9kbd0sHH/hFc2iLtrK9b3FrSqyxaVQwr8uhqJd
-uHaeg9mqzRdR8/13Pyy8qPLdJh0+LMhi0QCoXxYfFh9WtttEnd34H8p6/f1300KauwrULws39e18
-0ZaLNm9rgN/ZVf3h++/e124Vlc0vKsspHy+Yyi5+XbzPhijvCtduoiL/kA1ukWV27n0o7Sb8LIFj
-CvWR5GQgUJdp1Pw8TS9+rPy6SDv/+e3d+0+4qw8f3v20+PliV37efEYBAB9FTKC+RHn/Cfxn3rdv
-00Fube5O+iyCtHDs9BfPfz3q4sfFv9d91Ljhfy7ei0VO+nVTtdOkv/jpt0l2AX6iG1jXgKnnDuD4
-ke2k/i8fzzz5UedkVcP4pwF+Wvz2FJl+3vt598urXf5Y6LNA5WcFOP7r0sW7b9a+W/xcu0Xpv5zk
-Kfq3P9Dz9di/fCxS72MXVU1rpx9L4Bxl85Wmn5a+zP76Zuh3pL9ROWr87PN+//GHIl+oOtvn9XSU
-qH+p0gQBFnx1uV+JLH5O5zv+PXW+WepXVVHZT0+oQezkIATcIm+ivPV/z5J/+cYj3ir4w0Lx09vC
-e5n/y5/Y5LPPfdrqb88ga/PabxZRVfmp39l588m/6u+/e+OpP+dF7n1WZpJ9//Z4v372fDDz9eHB
-7Juvs/BLMHzrxL9+9twXpJfhd1/DrpQ5Euu/vlss3wp9HXC/54C/Ld69m6zwdx3tC0d8daSv0V8B
-n4b9YYF53sJelJV/ix6LZspw/sJtqyl5LJ5r/23htA1Imfm/gt9R7dqVB1LjhydAX4Gb+zksQF59
-9+P7H//U+376afFuvh2/T6P85Xr/5c8C6OXyFY4BGuN+EE0+GeR201b+wkkLN5mmBY5TfMw8ngqL
-CztXxCSXKMCYrRIElWkEJlEPYsSOeKBVZCAQTKBhApMwRFQzmCThE0YQu2CdEhgjbgmk9GluHpfR
-/hhwJCZhGI5jt5FsAkOrObVyE6g2y1snyhMGFlDY1x+BoHpCMulTj5JYWNAYJmnKpvLxXgmQ8az1
-4fUGxxcitMbbhDFcsiAItg04E+OSBIHTUYD1HI4FHH4kMREPknuYRMyhh3AARWMkfhCketqD1CWJ
-mTCo/nhUScoQcInB1hpFhIKoIXLo5jLpwFCgsnLCx1QlEMlz/iFEGqzH3vWYcpRcThgWnEKm0QcS
-rA8ek2a2IYYeowUanOZOlrbWSJUC4c7y2EMI3uJPMnMF/SSXdk6E495VLhzkWHps0rOhKwqk+xBI
-DhJirhdUCTamMfXz2Hy303hM4DFJ8QL21BcPBULR+gcdYxoeiDqOFSqpi5B5PUISfGg46gFZBPo4
-jdh8lueaWuVSMTURfbAUnLINr/QYuuYoMQV6l1aWxuZVTjlaLC14UzqZ+ziTGDzJzhiYoPLrt3uI
-tXkVR47kAo09lo5BD76CH51cTt1snVpMOttLhY93yxChCQPI4OBecS7++h4p4Bdn4H97bJongtPk
-s9gQnXku1vzsjjmX4/o4YUDkXkjHwDg5FXozU0fW4y5kyeYW0uJWlh536BKr0kMGjtzTkng6Ep62
-uTWnQtiIqKnEsx7e1hLtzlXs7Upw9TwEnp0t9yzCGgUJIZConx9OHJArLkRYW0dW42G9OeR5Nzwk
-yk1mX7du5RGHT7dka7N3AznmSif7y6tuKe2N1Al/1TUPRqH6E2GLVc27h9IptMLkCKQYRqPQJgzV
-2m6WLsSipS3v3b1/WmXEYY1meLEVIU/arOGVkyie7ZsH05ZKpjFW4cpY0YkjySpSExNG2TS8nnJx
-nrQmWh2WY3cP1eISP9wbaVK35ZXc60yC3VN/j9n7UFoK6zvjSTE2+Pvz6Mx322rnftfP8Y0XKIdv
-Qd7AfK0nexBTMqRiErvCMa3Hegpfjdh58glW2oNMsKeAX8x6YJLZs9K8/ozjJkWL+JmECMvhQ54x
-9rsTHwcoGrDi6Y4I+H7yY4/rJVPAbYymUH7C2D3uiUS3KQ1nrCAUkE1dJMneDQIJMQQx5SONxoEO
-OEn1/Ig1eBBUeEDRuOT2WGGGE4bNypBLFh2PeIg3bEbg44PHiqNDbGIQm50LW6MJU62JHCGBrmc9
-2F7WBJrrj1ssnTAK4sxwRgh5LLblhwNAclv3Gd+jC/etCfyfR8TMhcWQz8TBIbG8IIyAQ81w2n/C
-mHWAwRzxd3WoBY7BZnsqGOWrOCKwGkMMNfO0Kci/joZgEocLjNnzgcmdehPHJY0FudXgsr+v44TB
-I3jnMGnsK5veAhgi9iXGifkHMOC09Rh9cAw9sQ0asl6wKMk8mpzFYaaDSgG4F0wisQDDBRpjCINg
-FIxhlhQ31xdSkkk6odXZFpTYOQpOOgw9ugM2cDQ+2MYa7JsEirGBrOuxsQy5nPMRdYjsTJ/j1iNw
-FeSt1jY2+dd5yx1/pzZMOQXUIDcXeAzR7QlDRM8AMkUldXOmGmvYXPABjxqkYKO7VAY6JRU7kpXr
-+Epu2BU3qFFXClFi27784LrDZsJwbNlDw0JzhZ6M0SMXE4iBHehCpHVkrQhpTFn2dsvsZYkiPEEB
-GSEAwdiur9LS1U6P2U9JhGp4hnFpJo4FfkdJHcwV6Q5dV1Q9uNeeu7rV8PAjwdFg9RLtroifOr0k
-uOiRTo/obNPhQIf42Fr4mtThWoSjitEdAmFW66UCe8WFjPk1YVNpL9srFbond7jrLg8tqAasIMpy
-zkH0SY/6zVAwJrEc14zt14YRXdY+fcJ4qOd2XKB0/Kghw1ovd11t2o+zjt+txndo1ZDZ2T+uMVHT
-VSXhedBAHoJIID9xm6wPQI3cXY+HR7vxtrJuCKh6kbXaW5KkVeJsdsjqsYsOwYSh0w5sMbu7LF8J
-5T7U6LJdiTx+ca7RKlulGgS5Z1JSU2Llt32cHFipkaurtBrvNX5UtvNZjkufZ/r1/XyLl6yOpytL
-Km8Fn+y4wkhlqZP5db0rooqy7xdL4wxzFVTX+6HaxuQJK5E5B1neSSovZ9ALB8091dDbbjVxhWNY
-Ve5hn1VnI9OF0wpvaRm7SZuC1IRczwC7GnkhPt3muHV1YxUJfo+uh1sYnJy+vI0ZwuPV2uqWJYUH
-bmBsi1zmFSxHrqwA+WIzLrHkwW4r+bad7xbOzJCnKIa3S3YvrzEBK1Dc0emzJW+SqysQfdEDorQG
-9ZJlbQzEHQV8naPaF440YXzJk/7vHGK2xwuP+Gc5xITxyiP+WQ4x18oXHjFzCBy9kir1EFTAm0Zq
-LYwS8MpiGhtfxiBRDXpxDWxk9g9Q2fzPPAhS6VFDAc/aiNGatUkPtZIStZFQ1qD0IlJa/5ZPAi5J
-ySp1ETDomZMnvgiysZSBfMikrSDte/K5lqV6iwC5q7YN9I1dBZXUytDJNqU74MJsUyNNLAPopWK3
-tzmLkCiDyl7WQnj9sm7Kd5kzgpoccdNeMw/6zPVB3pUwMgi4C7hj4AMFAf4G27oXH8NNT9zll/sK
-S6wVlQwazjxWKWy20ZzXb9ne8ngGalPBWSUSj9xkc1drsXkZ8oOyvYT3e0rnYsGwx85xZB9wKeKg
-cJKZnamYwiaMymZvzk6wtDUkxmdUg0mPad0YHtvzpjEfp2iMxvORhnx0kCVLf5Qa43WJsVoyfEyI
-pzmf8ruM6xBr7dnBgzyxpqXuUPYaKahOaz1LrxNkS/Q3Ae5AC+xl6NbxAqXXlzghZBZHmOrM6Y6Y
-ctAkltwlF7SKEsShjVh7QHuxMU0a08/eiu3x3M+07OijMcKFFltByXrpk8w+JNnZpnp3CfgjV1Ax
-gUYCnWwYow42I5wHCcTzLXK0hMZN2DrPM/zCSqe9jRSlJnr70BPE4+zrwbk/xVIDHy2FAQyHoomT
-Tt5jiM68nBQut35Y0qLclLiQrutxt/c0OlSqXAC8VrxW97lGoRWzhOnifE2zbF05W4xuyhg7JTUL
-aqJ7SWDywhjlal0b+NLTpERBgnPW0+Nw99X2Ws72gOL27iER9jgzj7Uu09JaZ3n+hmCjjvZpjNst
-vOWWTbuLrg+/1ltX8WpPauEDEvcunIgTxuMEHweWKCx2KQ9DU/UKdO/3za4Szm2iHYL+ss9AAttm
-gZHq2pkUXFbV+FiJCKrpBms18zH75vax5jSo7FNunrVWY3Chvd8KKnHdaTt/6ealwaA1x17yTlft
-8VBle3nAE+7R0MScC3MJofNCCkA9PGKBgGMYEwfB2QO5j8zUqa8F/EkWKCzGQJ5EZ05HTly1B01E
-z813G5BY++RZ2sxbQS8ZveGPJNabp5kXAeoign6Tlt5+L8i5ZquY9+S+KEUHkmYMRFBxRrHnbl2X
-rVemKnG+oB1yd9+zT+4c43jQ0wWmQRR6mTCkY1q3VG05Y120ZzKOMBe6Vy7I5Vz4ygPB3yY4G0FP
-8RxiMx985YJPXsgRU58EuHj75gygTzejP+W/zKGe78UQN3yOJ1aMQV9hFH+GAfLRsza84WlPLAI/
-9G/5JdcHftEfH+Y3/fHUG7/o8bv98dzzy3e8S+XCvgqB+VUf7sH0yDHpONdbRE8tAg9NWOzcTJ7q
-TuAxe/AJ07c1Rs9okJvl1/0G60qvbdDzz5zO0FuPFQIHNp9y9Bd1CufYVx7dB26mAxwa8GMNrN/U
-oGbNZ3EQ7inLzHy5tRg9AXJrN8cB59cCUBeCiVO7zKM0jU0MamhnRThkg/NMmBOGb6StNeD9tDfA
-7czsAWopDdnGoXUHtA+s/k0vNPkBcxEI13jVd/axp85va3LpwGggXXWw12Gwr/JGAH0b8CPboiZd
-QO1l0mk/UHukud4C+w5uRoNzpCmoW6GbgbMyaQNkga2pQINB18lOXOCJzSWPFOhZcwzdgrsQnne7
-nvjBi+7cP2BbtBeDOW5uOLGf3z94FasKIguOqJl+8ss/6Kumns4cuWbqq5592TN/RNIbn5Qo6qbi
-O4F0P9txxPAwagqPlftztO8cWBzdN/jz3b7GD6JHYP/Zp4ToAMaA74M+EGSft3hEGMuf8EwjnTk/
-nz/P7SLipB/ogQ6xNX0fDqNncMCfHqGLCMM0ZzFa+6lPJYQ5p81vW4HkCvidYf6kb+P/oB965g8K
-C6uR0rdjX1DNKc5pOSTquI8uQ6KXxYaKBn+30/09tK4kMpJPgUIQkbENEPbuezNPPje2Um83SgyX
-GTCJb6MnGVIpgncdQg1qz2bvPfxYD9fewCXDomx9S+HQJuX6W3VAL+v5WZMudRQZk9ZdOk6GIUtC
-PqEb/uwSIrtR7/edzqgEdtpEwq7p2J5OQV+RLrmtTvFwFpf03M/VrRyTZ73qVod7v7Jh2Dwe5J25
-JqFOU2qEu1sP+CRotklediycKfLjeIZzjJQsvKmiGSNQhxuJpKa+hoWUizaE1PuIRGzJqropwgVB
-oo1hr870MZLgnXF5ZIpr6mF0L8aSy2gVnTAuoB4WEd4d5NPVC9TMotYXERKlTcwQ2KiB/C48AEfH
-Qbyq4CN8xTFnTvf/ebOc3isnjD95s0QF0nx9s+y+zMmz782xL0SgEmRpA3x1w1Ff9/74xcxKEPdS
-IEFTz6GgU0+BK/UZ5Gwbl4gZwycxEw+Kqa5QmMkh4OzgzEVPnDAiAOGBFaBW4wkDmj1G4RyElKgj
-NlLCq8zsp085MNh/+R4t1Q8yxoSv8PUpTt7izZwf2BTHZZ3pIZpUIpuLkL1nNL6sYcHqcKm237wp
-T2+RCjgXweXd2Zp7ZM8W6dG5bZsqo0nrJBTx8EC0+CQQdzEGnabTnkzofu1pYkWl4E7XSniECdxy
-vLYavPMcL9LW5SToJFNnos+uqweOHriUZ1ntIYZUonc7ltEQ6oTRtwOHNwez2sVREskHN+bqG3ua
-eaEbJ8XpyO8CeD9QJc8nbLP2C2R3A437ISUNyt5Yd0TbDNcl11/DSsOzdbi/VhCC0KE6v1vqVNkq
-45ZnG6fiV2NwzInxCNth3BwL0+8814jE6+1W1EeWtpWbSZJOJNYXmWRXa7vLnAljE692eHjZ4y5u
-y1u63De0IzKca7As48Z3XshVF+3XiLNz0JIMh/JOpbiNLlMi672uO0wYzOCZjRxcxj3D+gVenGIE
-MvFUGGXuRps2RzMcgWIRolHXpGUP6sMsQt1hspUBnVKUn/WQj2u6j3SXd9Xz0QtEzoM7qTu5y7gR
-q9gNNsrlEMLdikBt9bFvBnfbUIh6voTw7eDsyTmPKUvF0bHqWLbHe3VRHyRZnNeSGKsB73q66Vsk
-taxWYmwz1tYVFG/vOQhlM0gUkyvIab3nv2caJ1udU1F3pDMty7stubTE4OJqm0i0ECfrJIkLtraC
-HwRWKzlqpfhEIqYH09eT9WrOhQyt8YEoyBlnXtAT37WHIQ03TIuEHbnRxZDdLun0iok9PUC79prU
-m5beZzfQUelEXnhzb/pIROKx3F7qCttYIFGh5dXNzFzID7u8vKykA8Uejf7XXz//S4nKvW//ofS/
-QastYw==
-""")
+""".decode("base64").decode("zlib")
 
 ##file distutils-init.py
-DISTUTILS_INIT = convert("""
-eJytV92L4zYQf/dfMU0ottuse7RvC6FQrg8Lxz2Ugz4si9HacqKuIxlJ2ST313dG8odkO9d7aGBB
-luZLv/nNjFacOqUtKJMIvzK3cXlhWgp5MDBsqK5SNYftsBAGpLLA4F1oe2Ytl+9wUvW55TswCi4c
-KibhbFDSglXQCFmDPXIwtm7FawLRbwtPzg2T9gf4gupKv4GS0N262w7V0NvpbCy8cvTo3eAus6C5
-ETU3ICQZX1hFTw/dzR6V/AW1RCN4/XAtbsVXqIXmlVX6liS4lOzEYY9QFB2zx6LfoSNjz1a0pqT9
-QOIfJWQ2E888NEVZNqLlZZnvIB0NpHkimlFdKn2iRRY7yGG/CCJb6Iz280d34SFXBS2yEYPNF0Q7
-yM7oCjpWvbEDQmnhRwOs6zjThpKE8HogwRAgraqYFZgGZvzmzVh+mgz9vskT3hruwyjdFcqyENJw
-bbMPO5jdzonxK68QKT7B57CMRRG5shRSWDTX3dI8LzRndZbnSWL1zfvriUmK4TcGWSnZiEPCrxXv
-bM+sP7VW2is2WgWXCO3sAu3Rzysz3FiNCA8WPyM4gb1JAAmCiyTZbhFjWx3h9SzauuRXC9MFoVbc
-yNTCm1QXOOIfIn/g1kGMhDUBN72hI5XCBQtIXQw8UEEdma6Jaz4vJIJ51Orc15hzzmu6TdFp3ogr
-Aof0c98tsw1SiaiWotHffk3XYCkqdToxWRfTFXqgpg2khcLluOHMVC0zZhLKIomesfSreUNNgbXi
-Ky9VRzwzkBneNoGQyyvGjbsFQqOZvpWIjqH281lJ/jireFgR3cPzSyTGWzQpDNIU+03Fs4XKLkhp
-/n0uFnuF6VphB44b3uWRneSbBoMSioqE8oeF0JY+qTvYfEK+bPLYdoR4McfYQ7wMZj39q0kfP8q+
-FfsymO0GzNlPh644Jje06ulqHpOEQqdJUfoidI2O4CWx4qOglLye6RrFQirpCRXvhoRqXH3sYdVJ
-AItvc+VUsLO2v2hVAWrNIfVGtkG351cUMNncbh/WdowtSPtCdkzYFv6mwYc9o2Jt68ud6wectBr8
-hYAulPSlgzH44YbV3ikjrulEaNJxt+/H3wZ7bXSXje/YY4tfVVrVmUstaDwwOBLMg6iduDB0lMVC
-UyzYx7Ab4kjCqdViEJmDcdk/SKbgsjYXgfMznUWcrtS4z4fmJ/XOM1LPk/iIpqass5XwNbdnLb1Y
-8h3ERXSWZI6rZJxKs1LBqVH65w0Oy4ra0CBYxEeuOMbDmV5GI6E0Ha/wgVTtkX0+OXvqsD02CKLf
-XHbeft85D7tTCMYy2Njp4DJP7gWJr6paVWXZ1+/6YXLv/iE0M90FktiI7yFJD9e7SOLhEkkaMTUO
-azq9i2woBNR0/0eoF1HFMf0H8ChxH/jgcB34GZIz3Qn4/vid+VEamQrOVqAPTrOfmD4MPdVh09tb
-8dLLjvh/61lEP4yW5vJaH4vHcevG8agXvzPGoOhhXNncpTr99PTHx6e/UvffFLaxUSjuSeP286Dw
-gtEMcW1xKr/he4/6IQ6FUXP+0gkioHY5iwC9Eyx3HKO7af0zPPe+XyLn7fAY78k4aiR387bCr5XT
-5C4rFgwLGfMvJuAMew==
-""")
+DISTUTILS_INIT = """
+eJytVl2L6zYQffevGBKK7XavKe3bhVBo78uFSyml0IdlEVpbTtR1JCMpm6S/vjOSY0v+uO1DDbs4
+0tF8nJk5sjz32jjQNpPhzd7H1ys3SqqjhcfCL1q18vgbN1YY2Kc/pQWlHXB4l8ZdeCfUO5x1c+nE
+E1gNVwE1V3CxAqQDp6GVqgF3EmBd08nXLGukUfws4IDBVD13p2pYoS3rLk52ltF6hPhLS1XM4EUc
+VsVYKzvBWPkE+WgmLzPZjkaUNmd6KVI3JRwWoRSLM6P98mMG+Dw4q+il8Ev07P7ATCNmRlfQ8/qN
+HwVwB99Y4H0vMHAi6BWZUoEhoqXTNXdSK+A2LN6tE+fJ0E+7MhOdFSEM5lNgrJIKWXDF908wy87D
+xE3UoHsxkegZTaHIHGNSSYfm+ntelpURvCnK7NEWBI/ap/b8Z1m232N2rj7B60V2DRM3B5NpaLSw
+KnfwpvQVTviHOR+F88lhQyBAGlE7be6DoRNg9ldsG3218IHa6MRNU+tGBEYIggwafRk6yzsXDcVU
+9Ua08kYxt+F3x12LRaQi52j0xx/ywFxrdMRqVevzmaummlIYEp0WsCAaX8cFb6buuLUTqEgQQ6/Q
+04iWRoF38m/BdE8VtlBY0bURiB6KG1crpMZwc2fIjqWh+1UrkSLpWUIP8PySwLKv4qPGSVqDuMPy
+dywQ+gS7L1irXVkm5pJsq3l+Ib1lMOvUrxI+/mBBY4KB+WpUtcO06RtzckNvQ6vYj1lGoZM2sdDG
+fryJPYJVn/Cfka8XSqNaoLKhmOlqXMzW9+YBVp1EtIThZtOwzCRvMaARa+0xD0b2kcaJGwJsMbc7
+hLUfY4vKvsCOBdvDnyfuRbzmXRdGTZgPF7oGQkJACWVD22IMQdhx0npt5S2f+pXO+OwH6d+hwiS5
+7IJOjcK2emj1zBy1aONHByfAMoraw6WlrSIFTbGghqASoRCjVncYROFpXM4uYSqhGnuVeGvks4jz
+cjnCoR5GnPW7KOh4maVbdFeoplgJ3wh3MSrAsv/QuMjOspnTKRl1fTYqqNisv7uTVnhF1GhoBFbp
+lh+OcXN2riA5ZrYXtWxlfcDuC8U5kLoN3CCJYXGpesO6dx6rU0zGMtjU6cNlmW0Fid8Sja4ZG+Z3
+fTPbyj+mZnZ2wSQK8RaT9Km0ySRuLpm0DkUUL0ra3WQ2BgGJ7v9I9SKqNKZ/IR4R28RHm+vEz5ic
+nZ2IH7bfub8pU1PR3gr10W7xLTfHh6Z6bgZ7K14G7Mj/1z5J6MFo6V5e07H0Ou78dTyeI+mxKOpI
+eC2KMSj6HKxd6Uudf/n886fPv+f++x1lbASlmjQuPz8OvGA0j7j2eCu/4bcW6SFeCuNJ0W1GQHI5
+iwC9Ey0bjtHd9P4dPA++XxLnZDVuxvFEtlm3lf5a2c02u2LRYXHH/AOs8pIa
+""".decode("base64").decode("zlib")
 
 ##file distutils.cfg
-DISTUTILS_CFG = convert("""
+DISTUTILS_CFG = """
 eJxNj00KwkAMhfc9xYNuxe4Ft57AjYiUtDO1wXSmNJnK3N5pdSEEAu8nH6lxHVlRhtDHMPATA4uH
 xJ4EFmGbvfJiicSHFRzUSISMY6hq3GLCRLnIvSTnEefN0FIjw5tF0Hkk9Q5dRunBsVoyFi24aaLg
 9FDOlL0FPGluf4QjcInLlxd6f6rqkgPu/5nHLg0cXCscXoozRrP51DRT3j9QNl99AP53T2Q=
-""")
+""".decode("base64").decode("zlib")
 
 ##file activate_this.py
-ACTIVATE_THIS = convert("""
-eJyNU01v2zAMvetXEB4K21jmDOstQA4dMGCHbeihlyEIDMWmG62yJEiKE//7kXKdpN2KzYBt8euR
-fKSyLPs8wiEo8wh4wqZTGou4V6Hm0wJa1cSiTkJdr8+GsoTRHuCotBayiWqQEYGtMCgfD1KjGYBe
-5a3p0cRKiAe2NtLADikftnDco0ko/SFEVgEZ8aRC5GLux7i3BpSJ6J1H+i7A2CjiHq9z7JRZuuQq
-siwTIvpxJYCeuWaBpwZdhB+yxy/eWz+ZvVSU8C4E9FFZkyxFsvCT/ZzL8gcz9aXVE14Yyp2M+2W0
-y7n5mp0qN+avKXvbsyyzUqjeWR8hjGE+2iCE1W1tQ82hsCZN9UzlJr+/e/iab8WfqsmPI6pWeUPd
-FrMsd4H/55poeO9n54COhUs+sZNEzNtg/wanpjpuqHJaxs76HtZryI/K3H7KJ/KDIhqcbJ7kI4ar
-XL+sMgXnX0D+Te2Iy5xdP8yueSlQB/x/ED2BTAtyE3K4SYUN6AMNfbO63f4lBW3bUJPbTL+mjSxS
-PyRfJkZRgj+VbFv+EzHFi5pKwUEepa4JslMnwkowSRCXI+m5XvEOvtuBrxHdhLalG0JofYBok6qj
-YdN2dEngUlbC4PG60M1WEN0piu7Nq7on0mgyyUw3iV1etLo6r/81biWdQ9MWHFaePWZYaq+nmp+t
-s3az+sj7eA0jfgPfeoN1
-""")
+ACTIVATE_THIS = """
+eJyNUk2L3DAMvftXiCxLEphmSvc2MIcu9NaWHnopwxCcRNlRN7GD7clM/n0lp5mPZQs1JLb8pKcn
+WUmSPE9w9GReAM9Yt9RhFg7kSzmtoKE6ZGU0ynJ7AfIcJnuEE3Wd0nWgUQcEQWEkF466QzMCf+Ss
+6dGEQqmfgtbaQIWcDxs4HdBElv7og1wBg3gmH0TMjykcrAEyAd3gkP8rMDaocMDbHBWZ9RBdVZIk
+SgU3bRTwWjQrPNc4BPiue/zinHUz7DRxws/eowtkTUSyiMhKfi2y3NHMdXX0itcOpYMOh3Ww61g8
+luJSDFP6tmH3ftyki2eeJ7mifrAugJ/8crReqUqztC0fC4kuGnKGxWf/snXlZb8kzXMmboW0GDod
+Wut62G4hPZF5+pTO5XtiKYOuX/UL+ptcvy2ZTPKvIP1KFdeTiuuHxTXNFXYe/5+km0nmJ3r0KTxG
+YSM6z23fbZ7276Tg9x5LdiuFjok7noks1sP2tWscpeRX6KaRnRuT3WnKlQQ51F3JlC2dmSvSRENd
+j3wvetUDfLOjDDLPYtPwjDJb7yHYeNXyMPMLtdEQKRtl8HQrdLdX3O4YxZP7RvfcNH6ZCPMsi8td
+qZvLAN7yFnoY0DSZhOUXj4WWy+tZ8190ud1tPu5Zzy2N+gOGaVfA
+""".decode("base64").decode("zlib")
 
 if __name__ == '__main__':
     main()
 
 ## TODO:
 ## Copy python.exe.manifest
 ## Monkeypatch distutils.sysconfig
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/activate.bat
+++ /dev/null
@@ -1,31 +0,0 @@
-@echo off
-set VIRTUAL_ENV=__VIRTUAL_ENV__
-
-if not defined PROMPT (
-    set PROMPT=$P$G
-)
-
-if defined _OLD_VIRTUAL_PROMPT (
-    set PROMPT=%_OLD_VIRTUAL_PROMPT%
-)
-
-if defined _OLD_VIRTUAL_PYTHONHOME (
-     set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%
-)
-
-set _OLD_VIRTUAL_PROMPT=%PROMPT%
-set PROMPT=__VIRTUAL_WINPROMPT__ %PROMPT%
-
-if defined PYTHONHOME (
-     set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%
-     set PYTHONHOME=
-)
-
-if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH%; goto SKIPPATH
-
-set _OLD_VIRTUAL_PATH=%PATH%
-
-:SKIPPATH
-set PATH=%VIRTUAL_ENV%\__BIN_NAME__;%PATH%
-
-:END
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/activate.csh
+++ /dev/null
@@ -1,32 +0,0 @@
-# This file must be used with "source bin/activate.csh" *from csh*.
-# You cannot run it directly.
-# Created by Davide Di Blasi <davidedb@gmail.com>.
-
-alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate'
-
-# Unset irrelavent variables.
-deactivate nondestructive
-
-setenv VIRTUAL_ENV "__VIRTUAL_ENV__"
-
-set _OLD_VIRTUAL_PATH="$PATH"
-setenv PATH "$VIRTUAL_ENV/__BIN_NAME__:$PATH"
-
-set _OLD_VIRTUAL_PROMPT="$prompt"
-
-if ("__VIRTUAL_PROMPT__" != "") then
-    set env_name = "__VIRTUAL_PROMPT__"
-else
-    if (`basename "$VIRTUAL_ENV"` == "__") then
-        # special case for Aspen magic directories
-        # see http://www.zetadev.com/software/aspen/
-        set env_name = `basename \`dirname "$VIRTUAL_ENV"\``
-    else
-        set env_name = `basename "$VIRTUAL_ENV"`
-    endif
-endif
-set prompt = "[$env_name] $prompt"
-unset env_name
-
-rehash
-
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/activate.fish
+++ /dev/null
@@ -1,79 +0,0 @@
-# This file must be used with ". bin/activate.fish" *from fish* (http://fishshell.org)
-# you cannot run it directly
-
-function deactivate  -d "Exit virtualenv and return to normal shell environment"
-    # reset old environment variables
-    if test -n "$_OLD_VIRTUAL_PATH" 
-        set -gx PATH $_OLD_VIRTUAL_PATH
-        set -e _OLD_VIRTUAL_PATH
-    end
-    if test -n "$_OLD_VIRTUAL_PYTHONHOME"
-        set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
-        set -e _OLD_VIRTUAL_PYTHONHOME
-    end
-
-    if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
-        functions -e fish_prompt
-        set -e _OLD_FISH_PROMPT_OVERRIDE
-    end
-
-    set -e VIRTUAL_ENV
-    if test "$argv[1]" != "nondestructive"
-        # Self destruct!
-        functions -e deactivate
-    end
-end
-
-# unset irrelavent variables
-deactivate nondestructive
-
-set -gx VIRTUAL_ENV "__VIRTUAL_ENV__"
-
-set -gx _OLD_VIRTUAL_PATH $PATH
-set -gx PATH "$VIRTUAL_ENV/__BIN_NAME__" $PATH
-
-# unset PYTHONHOME if set
-if set -q PYTHONHOME
-    set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
-    set -e PYTHONHOME
-end
-
-if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
-    # fish shell uses a function, instead of env vars,
-    # to produce the prompt. Overriding the existing function is easy.
-    # However, adding to the current prompt, instead of clobbering it,
-    # is a little more work.
-    set -l oldpromptfile (tempfile)
-    if test $status
-        # save the current fish_prompt function...
-        echo "function _old_fish_prompt" >> $oldpromptfile
-        echo -n \# >> $oldpromptfile
-        functions fish_prompt >> $oldpromptfile
-        # we've made the "_old_fish_prompt" file, source it.
-        . $oldpromptfile
-        rm -f $oldpromptfile
-        
-        if test -n "__VIRTUAL_PROMPT__"
-            # We've been given us a prompt override.
-            # 
-            # FIXME: Unsure how to handle this *safely*. We could just eval()
-            #   whatever is given, but the risk is a bit much.
-            echo "activate.fish: Alternative prompt prefix is not supported under fish-shell." 1>&2
-            echo "activate.fish: Alter the fish_prompt in this file as needed." 1>&2
-        end        
-        
-        # with the original prompt function renamed, we can override with our own.
-        function fish_prompt                
-            set -l _checkbase (basename "$VIRTUAL_ENV")
-            if test $_checkbase = "__"
-                # special case for Aspen magic directories
-                # see http://www.zetadev.com/software/aspen/
-                printf "%s[%s]%s %s" (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal) (_old_fish_prompt)
-            else
-                printf "%s(%s)%s%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal) (_old_fish_prompt)
-            end
-        end 
-        set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
-    end
-end
-
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/activate.ps1
+++ /dev/null
@@ -1,148 +0,0 @@
-# This file must be dot sourced from PoSh; you cannot run it
-# directly. Do this: . ./activate.ps1
-
-# FIXME: clean up unused vars.
-$script:THIS_PATH = $myinvocation.mycommand.path
-$script:BASE_DIR = split-path (resolve-path "$THIS_PATH/..") -Parent
-$script:DIR_NAME = split-path $BASE_DIR -Leaf
-
-function global:deactivate ( [switch] $NonDestructive ){
-
-    if ( test-path variable:_OLD_VIRTUAL_PATH ) {
-        $env:PATH = $variable:_OLD_VIRTUAL_PATH
-        remove-variable "_OLD_VIRTUAL_PATH" -scope global
-    }
-
-    if ( test-path function:_old_virtual_prompt ) {
-        $function:prompt = $function:_old_virtual_prompt
-        remove-item function:\_old_virtual_prompt
-    }
-
-    if ($env:VIRTUAL_ENV) {
-        $old_env = split-path $env:VIRTUAL_ENV -leaf
-        remove-item env:VIRTUAL_ENV -erroraction silentlycontinue
-    }
-
-    if ( !$NonDestructive ) {
-        # Self destruct!
-        remove-item function:deactivate
-    }
-}
-
-# unset irrelevant variables
-deactivate -nondestructive
-
-$VIRTUAL_ENV = $BASE_DIR
-$env:VIRTUAL_ENV = $VIRTUAL_ENV
-
-$global:_OLD_VIRTUAL_PATH = $env:PATH
-$env:PATH = "$env:VIRTUAL_ENV/Scripts;" + $env:PATH
-function global:_old_virtual_prompt { "" }
-$function:_old_virtual_prompt = $function:prompt
-function global:prompt {
-    # Add a prefix to the current prompt, but don't discard it.
-    write-host "($(split-path $env:VIRTUAL_ENV -leaf)) " -nonewline
-    & $function:_old_virtual_prompt
-}
-
-# SIG # Begin signature block
-# MIISeAYJKoZIhvcNAQcCoIISaTCCEmUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
-# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
-# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUS5reBwSg3zOUwhXf2jPChZzf
-# yPmggg6tMIIGcDCCBFigAwIBAgIBJDANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQG
-# EwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERp
-# Z2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2Vy
-# dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDcxMDI0MjIwMTQ2WhcNMTcxMDI0MjIw
-# MTQ2WjCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzAp
-# BgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNV
-# BAMTL1N0YXJ0Q29tIENsYXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUgT2JqZWN0
-# IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyiOLIjUemqAbPJ1J
-# 0D8MlzgWKbr4fYlbRVjvhHDtfhFN6RQxq0PjTQxRgWzwFQNKJCdU5ftKoM5N4YSj
-# Id6ZNavcSa6/McVnhDAQm+8H3HWoD030NVOxbjgD/Ih3HaV3/z9159nnvyxQEckR
-# ZfpJB2Kfk6aHqW3JnSvRe+XVZSufDVCe/vtxGSEwKCaNrsLc9pboUoYIC3oyzWoU
-# TZ65+c0H4paR8c8eK/mC914mBo6N0dQ512/bkSdaeY9YaQpGtW/h/W/FkbQRT3sC
-# pttLVlIjnkuY4r9+zvqhToPjxcfDYEf+XD8VGkAqle8Aa8hQ+M1qGdQjAye8OzbV
-# uUOw7wIDAQABo4IB6TCCAeUwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-# AQYwHQYDVR0OBBYEFNBOD0CZbLhLGW87KLjg44gHNKq3MB8GA1UdIwQYMBaAFE4L
-# 7xqkQFulF2mHMMo0aEPQQa7yMD0GCCsGAQUFBwEBBDEwLzAtBggrBgEFBQcwAoYh
-# aHR0cDovL3d3dy5zdGFydHNzbC5jb20vc2ZzY2EuY3J0MFsGA1UdHwRUMFIwJ6Al
-# oCOGIWh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3Nmc2NhLmNybDAnoCWgI4YhaHR0
-# cDovL2NybC5zdGFydHNzbC5jb20vc2ZzY2EuY3JsMIGABgNVHSAEeTB3MHUGCysG
-# AQQBgbU3AQIBMGYwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
-# L3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
-# L2ludGVybWVkaWF0ZS5wZGYwEQYJYIZIAYb4QgEBBAQDAgABMFAGCWCGSAGG+EIB
-# DQRDFkFTdGFydENvbSBDbGFzcyAyIFByaW1hcnkgSW50ZXJtZWRpYXRlIE9iamVj
-# dCBTaWduaW5nIENlcnRpZmljYXRlczANBgkqhkiG9w0BAQUFAAOCAgEAcnMLA3Va
-# N4OIE9l4QT5OEtZy5PByBit3oHiqQpgVEQo7DHRsjXD5H/IyTivpMikaaeRxIv95
-# baRd4hoUcMwDj4JIjC3WA9FoNFV31SMljEZa66G8RQECdMSSufgfDYu1XQ+cUKxh
-# D3EtLGGcFGjjML7EQv2Iol741rEsycXwIXcryxeiMbU2TPi7X3elbwQMc4JFlJ4B
-# y9FhBzuZB1DV2sN2irGVbC3G/1+S2doPDjL1CaElwRa/T0qkq2vvPxUgryAoCppU
-# FKViw5yoGYC+z1GaesWWiP1eFKAL0wI7IgSvLzU3y1Vp7vsYaxOVBqZtebFTWRHt
-# XjCsFrrQBngt0d33QbQRI5mwgzEp7XJ9xu5d6RVWM4TPRUsd+DDZpBHm9mszvi9g
-# VFb2ZG7qRRXCSqys4+u/NLBPbXi/m/lU00cODQTlC/euwjk9HQtRrXQ/zqsBJS6U
-# J+eLGw1qOfj+HVBl/ZQpfoLk7IoWlRQvRL1s7oirEaqPZUIWY/grXq9r6jDKAp3L
-# ZdKQpPOnnogtqlU4f7/kLjEJhrrc98mrOWmVMK/BuFRAfQ5oDUMnVmCzAzLMjKfG
-# cVW/iMew41yfhgKbwpfzm3LBr1Zv+pEBgcgW6onRLSAn3XHM0eNtz+AkxH6rRf6B
-# 2mYhLEEGLapH8R1AMAo4BbVFOZR5kXcMCwowggg1MIIHHaADAgECAgIEuDANBgkq
-# hkiG9w0BAQUFADCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0
-# ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcx
-# ODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUg
-# T2JqZWN0IENBMB4XDTExMTIwMzE1MzQxOVoXDTEzMTIwMzE0NTgwN1owgYwxIDAe
-# BgNVBA0TFzU4MTc5Ni1HaDd4Zkp4a3hRU0lPNEUwMQswCQYDVQQGEwJERTEPMA0G
-# A1UECBMGQmVybGluMQ8wDQYDVQQHEwZCZXJsaW4xFjAUBgNVBAMTDUphbm5pcyBM
-# ZWlkZWwxITAfBgkqhkiG9w0BCQEWEmphbm5pc0BsZWlkZWwuaW5mbzCCAiIwDQYJ
-# KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMcPeABYdN7nPq/AkZ/EkyUBGx/l2Yui
-# Lfm8ZdLG0ulMb/kQL3fRY7sUjYPyn9S6PhqqlFnNoGHJvbbReCdUC9SIQYmOEjEA
-# raHfb7MZU10NjO4U2DdGucj2zuO5tYxKizizOJF0e4yRQZVxpUGdvkW/+GLjCNK5
-# L7mIv3Z1dagxDKHYZT74HXiS4VFUwHF1k36CwfM2vsetdm46bdgSwV+BCMmZICYT
-# IJAS9UQHD7kP4rik3bFWjUx08NtYYFAVOd/HwBnemUmJe4j3IhZHr0k1+eDG8hDH
-# KVvPgLJIoEjC4iMFk5GWsg5z2ngk0LLu3JZMtckHsnnmBPHQK8a3opUNd8hdMNJx
-# gOwKjQt2JZSGUdIEFCKVDqj0FmdnDMPfwy+FNRtpBMl1sz78dUFhSrnM0D8NXrqa
-# 4rG+2FoOXlmm1rb6AFtpjAKksHRpYcPk2DPGWp/1sWB+dUQkS3gOmwFzyqeTuXpT
-# 0juqd3iAxOGx1VRFQ1VHLLf3AzV4wljBau26I+tu7iXxesVucSdsdQu293jwc2kN
-# xK2JyHCoZH+RyytrwS0qw8t7rMOukU9gwP8mn3X6mgWlVUODMcHTULjSiCEtvyZ/
-# aafcwjUbt4ReEcnmuZtWIha86MTCX7U7e+cnpWG4sIHPnvVTaz9rm8RyBkIxtFCB
-# nQ3FnoQgyxeJAgMBAAGjggOdMIIDmTAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIH
-# gDAuBgNVHSUBAf8EJDAiBggrBgEFBQcDAwYKKwYBBAGCNwIBFQYKKwYBBAGCNwoD
-# DTAdBgNVHQ4EFgQUWyCgrIWo8Ifvvm1/YTQIeMU9nc8wHwYDVR0jBBgwFoAU0E4P
-# QJlsuEsZbzsouODjiAc0qrcwggIhBgNVHSAEggIYMIICFDCCAhAGCysGAQQBgbU3
-# AQICMIIB/zAuBggrBgEFBQcCARYiaHR0cDovL3d3dy5zdGFydHNzbC5jb20vcG9s
-# aWN5LnBkZjA0BggrBgEFBQcCARYoaHR0cDovL3d3dy5zdGFydHNzbC5jb20vaW50
-# ZXJtZWRpYXRlLnBkZjCB9wYIKwYBBQUHAgIwgeowJxYgU3RhcnRDb20gQ2VydGlm
-# aWNhdGlvbiBBdXRob3JpdHkwAwIBARqBvlRoaXMgY2VydGlmaWNhdGUgd2FzIGlz
-# c3VlZCBhY2NvcmRpbmcgdG8gdGhlIENsYXNzIDIgVmFsaWRhdGlvbiByZXF1aXJl
-# bWVudHMgb2YgdGhlIFN0YXJ0Q29tIENBIHBvbGljeSwgcmVsaWFuY2Ugb25seSBm
-# b3IgdGhlIGludGVuZGVkIHB1cnBvc2UgaW4gY29tcGxpYW5jZSBvZiB0aGUgcmVs
-# eWluZyBwYXJ0eSBvYmxpZ2F0aW9ucy4wgZwGCCsGAQUFBwICMIGPMCcWIFN0YXJ0
-# Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MAMCAQIaZExpYWJpbGl0eSBhbmQg
-# d2FycmFudGllcyBhcmUgbGltaXRlZCEgU2VlIHNlY3Rpb24gIkxlZ2FsIGFuZCBM
-# aW1pdGF0aW9ucyIgb2YgdGhlIFN0YXJ0Q29tIENBIHBvbGljeS4wNgYDVR0fBC8w
-# LTAroCmgJ4YlaHR0cDovL2NybC5zdGFydHNzbC5jb20vY3J0YzItY3JsLmNybDCB
-# iQYIKwYBBQUHAQEEfTB7MDcGCCsGAQUFBzABhitodHRwOi8vb2NzcC5zdGFydHNz
-# bC5jb20vc3ViL2NsYXNzMi9jb2RlL2NhMEAGCCsGAQUFBzAChjRodHRwOi8vYWlh
-# LnN0YXJ0c3NsLmNvbS9jZXJ0cy9zdWIuY2xhc3MyLmNvZGUuY2EuY3J0MCMGA1Ud
-# EgQcMBqGGGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tLzANBgkqhkiG9w0BAQUFAAOC
-# AQEAhrzEV6zwoEtKjnFRhCsjwiPykVpo5Eiye77Ve801rQDiRKgSCCiW6g3HqedL
-# OtaSs65Sj2pm3Viea4KR0TECLcbCTgsdaHqw2x1yXwWBQWZEaV6EB05lIwfr94P1
-# SFpV43zkuc+bbmA3+CRK45LOcCNH5Tqq7VGTCAK5iM7tvHwFlbQRl+I6VEL2mjpF
-# NsuRjDOVrv/9qw/a22YJ9R7Y1D0vUSs3IqZx2KMUaYDP7H2mSRxJO2nADQZBtriF
-# gTyfD3lYV12MlIi5CQwe3QC6DrrfSMP33i5Wa/OFJiQ27WPxmScYVhiqozpImFT4
-# PU9goiBv9RKXdgTmZE1PN0NQ5jGCAzUwggMxAgEBMIGTMIGMMQswCQYDVQQGEwJJ
-# TDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0
-# YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3Mg
-# MiBQcmltYXJ5IEludGVybWVkaWF0ZSBPYmplY3QgQ0ECAgS4MAkGBSsOAwIaBQCg
-# eDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEE
-# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
-# BDEWBBRVGw0FDSiaIi38dWteRUAg/9Pr6DANBgkqhkiG9w0BAQEFAASCAgCInvOZ
-# FdaNFzbf6trmFDZKMojyx3UjKMCqNjHVBbuKY0qXwFC/ElYDV1ShJ2CBZbdurydO
-# OQ6cIQ0KREOCwmX/xB49IlLHHUxNhEkVv7HGU3EKAFf9IBt9Yr7jikiR9cjIsfHK
-# 4cjkoKJL7g28yEpLLkHt1eo37f1Ga9lDWEa5Zq3U5yX+IwXhrUBm1h8Xr033FhTR
-# VEpuSz6LHtbrL/zgJnCzJ2ahjtJoYevdcWiNXffosJHFaSfYDDbiNsPRDH/1avmb
-# 5j/7BhP8BcBaR6Fp8tFbNGIcWHHGcjqLMnTc4w13b7b4pDhypqElBa4+lCmwdvv9
-# GydYtRgPz8GHeoBoKj30YBlMzRIfFYaIFGIC4Ai3UEXkuH9TxYohVbGm/W0Kl4Lb
-# RJ1FwiVcLcTOJdgNId2vQvKc+jtNrjcg5SP9h2v/C4aTx8tyc6tE3TOPh2f9b8DL
-# S+SbVArJpuJqrPTxDDoO1QNjTgLcdVYeZDE+r/NjaGZ6cMSd8db3EaG3ijD/0bud
-# SItbm/OlNVbQOFRR76D+ZNgPcU5iNZ3bmvQQIg6aSB9MHUpIE/SeCkNl9YeVk1/1
-# GFULgNMRmIYP4KLvu9ylh5Gu3hvD5VNhH6+FlXANwFy07uXks5uF8mfZVxVCnodG
-# xkNCx+6PsrA5Z7WP4pXcmYnMn97npP/Q9EHJWw==
-# SIG # End signature block
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/activate.sh
+++ /dev/null
@@ -1,76 +0,0 @@
-# This file must be used with "source bin/activate" *from bash*
-# you cannot run it directly
-
-deactivate () {
-    # reset old environment variables
-    if [ -n "$_OLD_VIRTUAL_PATH" ] ; then
-        PATH="$_OLD_VIRTUAL_PATH"
-        export PATH
-        unset _OLD_VIRTUAL_PATH
-    fi
-    if [ -n "$_OLD_VIRTUAL_PYTHONHOME" ] ; then
-        PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
-        export PYTHONHOME
-        unset _OLD_VIRTUAL_PYTHONHOME
-    fi
-
-    # This should detect bash and zsh, which have a hash command that must
-    # be called to get it to forget past commands.  Without forgetting
-    # past commands the $PATH changes we made may not be respected
-    if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
-        hash -r
-    fi
-
-    if [ -n "$_OLD_VIRTUAL_PS1" ] ; then
-        PS1="$_OLD_VIRTUAL_PS1"
-        export PS1
-        unset _OLD_VIRTUAL_PS1
-    fi
-
-    unset VIRTUAL_ENV
-    if [ ! "$1" = "nondestructive" ] ; then
-    # Self destruct!
-        unset -f deactivate
-    fi
-}
-
-# unset irrelavent variables
-deactivate nondestructive
-
-VIRTUAL_ENV="__VIRTUAL_ENV__"
-export VIRTUAL_ENV
-
-_OLD_VIRTUAL_PATH="$PATH"
-PATH="$VIRTUAL_ENV/__BIN_NAME__:$PATH"
-export PATH
-
-# unset PYTHONHOME if set
-# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
-# could use `if (set -u; : $PYTHONHOME) ;` in bash
-if [ -n "$PYTHONHOME" ] ; then
-    _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
-    unset PYTHONHOME
-fi
-
-if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
-    _OLD_VIRTUAL_PS1="$PS1"
-    if [ "x__VIRTUAL_PROMPT__" != x ] ; then
-        PS1="__VIRTUAL_PROMPT__$PS1"
-    else
-    if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
-        # special case for Aspen magic directories
-        # see http://www.zetadev.com/software/aspen/
-        PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
-    else
-        PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
-    fi
-    fi
-    export PS1
-fi
-
-# This should detect bash and zsh, which have a hash command that must
-# be called to get it to forget past commands.  Without forgetting
-# past commands the $PATH changes we made may not be respected
-if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
-    hash -r
-fi
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/activate_this.py
+++ /dev/null
@@ -1,34 +0,0 @@
-"""By using execfile(this_file, dict(__file__=this_file)) you will
-activate this virtualenv environment.
-
-This can be used when you must use an existing Python interpreter, not
-the virtualenv bin/python
-"""
-
-try:
-    __file__
-except NameError:
-    raise AssertionError(
-        "You must run this like execfile('path/to/activate_this.py', dict(__file__='path/to/activate_this.py'))")
-import sys
-import os
-
-old_os_path = os.environ['PATH']
-os.environ['PATH'] = os.path.dirname(os.path.abspath(__file__)) + os.pathsep + old_os_path
-base = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-if sys.platform == 'win32':
-    site_packages = os.path.join(base, 'Lib', 'site-packages')
-else:
-    site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')
-prev_sys_path = list(sys.path)
-import site
-site.addsitedir(site_packages)
-sys.real_prefix = sys.prefix
-sys.prefix = base
-# Move the added items to the front of the path:
-new_sys_path = []
-for item in list(sys.path):
-    if item not in prev_sys_path:
-        new_sys_path.append(item)
-        sys.path.remove(item)
-sys.path[:0] = new_sys_path
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/deactivate.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-@echo off
-
-if defined _OLD_VIRTUAL_PROMPT (
-    set PROMPT=%_OLD_VIRTUAL_PROMPT%
-)
-set _OLD_VIRTUAL_PROMPT=
-
-if defined _OLD_VIRTUAL_PYTHONHOME (
-     set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%
-     set _OLD_VIRTUAL_PYTHONHOME=
-)
-
-if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH%
-
-set _OLD_VIRTUAL_PATH=
-
-:END
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/distribute_setup.py
+++ /dev/null
@@ -1,485 +0,0 @@
-#!python
-"""Bootstrap distribute installation
-
-If you want to use setuptools in your package's setup.py, just include this
-file in the same directory with it, and add this to the top of your setup.py::
-
-    from distribute_setup import use_setuptools
-    use_setuptools()
-
-If you want to require a specific version of setuptools, set a download
-mirror, or use an alternate download directory, you can do so by supplying
-the appropriate options to ``use_setuptools()``.
-
-This file can also be run as a script to install or upgrade setuptools.
-"""
-import os
-import sys
-import time
-import fnmatch
-import tempfile
-import tarfile
-from distutils import log
-
-try:
-    from site import USER_SITE
-except ImportError:
-    USER_SITE = None
-
-try:
-    import subprocess
-
-    def _python_cmd(*args):
-        args = (sys.executable,) + args
-        return subprocess.call(args) == 0
-
-except ImportError:
-    # will be used for python 2.3
-    def _python_cmd(*args):
-        args = (sys.executable,) + args
-        # quoting arguments if windows
-        if sys.platform == 'win32':
-            def quote(arg):
-                if ' ' in arg:
-                    return '"%s"' % arg
-                return arg
-            args = [quote(arg) for arg in args]
-        return os.spawnl(os.P_WAIT, sys.executable, *args) == 0
-
-DEFAULT_VERSION = "0.6.24"
-DEFAULT_URL = "http://pypi.python.org/packages/source/d/distribute/"
-SETUPTOOLS_FAKED_VERSION = "0.6c11"
-
-SETUPTOOLS_PKG_INFO = """\
-Metadata-Version: 1.0
-Name: setuptools
-Version: %s
-Summary: xxxx
-Home-page: xxx
-Author: xxx
-Author-email: xxx
-License: xxx
-Description: xxx
-""" % SETUPTOOLS_FAKED_VERSION
-
-
-def _install(tarball):
-    # extracting the tarball
-    tmpdir = tempfile.mkdtemp()
-    log.warn('Extracting in %s', tmpdir)
-    old_wd = os.getcwd()
-    try:
-        os.chdir(tmpdir)
-        tar = tarfile.open(tarball)
-        _extractall(tar)
-        tar.close()
-
-        # going in the directory
-        subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0])
-        os.chdir(subdir)
-        log.warn('Now working in %s', subdir)
-
-        # installing
-        log.warn('Installing Distribute')
-        if not _python_cmd('setup.py', 'install'):
-            log.warn('Something went wrong during the installation.')
-            log.warn('See the error message above.')
-    finally:
-        os.chdir(old_wd)
-
-
-def _build_egg(egg, tarball, to_dir):
-    # extracting the tarball
-    tmpdir = tempfile.mkdtemp()
-    log.warn('Extracting in %s', tmpdir)
-    old_wd = os.getcwd()
-    try:
-        os.chdir(tmpdir)
-        tar = tarfile.open(tarball)
-        _extractall(tar)
-        tar.close()
-
-        # going in the directory
-        subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0])
-        os.chdir(subdir)
-        log.warn('Now working in %s', subdir)
-
-        # building an egg
-        log.warn('Building a Distribute egg in %s', to_dir)
-        _python_cmd('setup.py', '-q', 'bdist_egg', '--dist-dir', to_dir)
-
-    finally:
-        os.chdir(old_wd)
-    # returning the result
-    log.warn(egg)
-    if not os.path.exists(egg):
-        raise IOError('Could not build the egg.')
-
-
-def _do_download(version, download_base, to_dir, download_delay):
-    egg = os.path.join(to_dir, 'distribute-%s-py%d.%d.egg'
-                       % (version, sys.version_info[0], sys.version_info[1]))
-    if not os.path.exists(egg):
-        tarball = download_setuptools(version, download_base,
-                                      to_dir, download_delay)
-        _build_egg(egg, tarball, to_dir)
-    sys.path.insert(0, egg)
-    import setuptools
-    setuptools.bootstrap_install_from = egg
-
-
-def use_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
-                   to_dir=os.curdir, download_delay=15, no_fake=True):
-    # making sure we use the absolute path
-    to_dir = os.path.abspath(to_dir)
-    was_imported = 'pkg_resources' in sys.modules or \
-        'setuptools' in sys.modules
-    try:
-        try:
-            import pkg_resources
-            if not hasattr(pkg_resources, '_distribute'):
-                if not no_fake:
-                    _fake_setuptools()
-                raise ImportError
-        except ImportError:
-            return _do_download(version, download_base, to_dir, download_delay)
-        try:
-            pkg_resources.require("distribute>="+version)
-            return
-        except pkg_resources.VersionConflict:
-            e = sys.exc_info()[1]
-            if was_imported:
-                sys.stderr.write(
-                "The required version of distribute (>=%s) is not available,\n"
-                "and can't be installed while this script is running. Please\n"
-                "install a more recent version first, using\n"
-                "'easy_install -U distribute'."
-                "\n\n(Currently using %r)\n" % (version, e.args[0]))
-                sys.exit(2)
-            else:
-                del pkg_resources, sys.modules['pkg_resources']    # reload ok
-                return _do_download(version, download_base, to_dir,
-                                    download_delay)
-        except pkg_resources.DistributionNotFound:
-            return _do_download(version, download_base, to_dir,
-                                download_delay)
-    finally:
-        if not no_fake:
-            _create_fake_setuptools_pkg_info(to_dir)
-
-def download_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
-                        to_dir=os.curdir, delay=15):
-    """Download distribute from a specified location and return its filename
-
-    `version` should be a valid distribute version number that is available
-    as an egg for download under the `download_base` URL (which should end
-    with a '/'). `to_dir` is the directory where the egg will be downloaded.
-    `delay` is the number of seconds to pause before an actual download
-    attempt.
-    """
-    # making sure we use the absolute path
-    to_dir = os.path.abspath(to_dir)
-    try:
-        from urllib.request import urlopen
-    except ImportError:
-        from urllib2 import urlopen
-    tgz_name = "distribute-%s.tar.gz" % version
-    url = download_base + tgz_name
-    saveto = os.path.join(to_dir, tgz_name)
-    src = dst = None
-    if not os.path.exists(saveto):  # Avoid repeated downloads
-        try:
-            log.warn("Downloading %s", url)
-            src = urlopen(url)
-            # Read/write all in one block, so we don't create a corrupt file
-            # if the download is interrupted.
-            data = src.read()
-            dst = open(saveto, "wb")
-            dst.write(data)
-        finally:
-            if src:
-                src.close()
-            if dst:
-                dst.close()
-    return os.path.realpath(saveto)
-
-def _no_sandbox(function):
-    def __no_sandbox(*args, **kw):
-        try:
-            from setuptools.sandbox import DirectorySandbox
-            if not hasattr(DirectorySandbox, '_old'):
-                def violation(*args):
-                    pass
-                DirectorySandbox._old = DirectorySandbox._violation
-                DirectorySandbox._violation = violation
-                patched = True
-            else:
-                patched = False
-        except ImportError:
-            patched = False
-
-        try:
-            return function(*args, **kw)
-        finally:
-            if patched:
-                DirectorySandbox._violation = DirectorySandbox._old
-                del DirectorySandbox._old
-
-    return __no_sandbox
-
-def _patch_file(path, content):
-    """Will backup the file then patch it"""
-    existing_content = open(path).read()
-    if existing_content == content:
-        # already patched
-        log.warn('Already patched.')
-        return False
-    log.warn('Patching...')
-    _rename_path(path)
-    f = open(path, 'w')
-    try:
-        f.write(content)
-    finally:
-        f.close()
-    return True
-
-_patch_file = _no_sandbox(_patch_file)
-
-def _same_content(path, content):
-    return open(path).read() == content
-
-def _rename_path(path):
-    new_name = path + '.OLD.%s' % time.time()
-    log.warn('Renaming %s into %s', path, new_name)
-    os.rename(path, new_name)
-    return new_name
-
-def _remove_flat_installation(placeholder):
-    if not os.path.isdir(placeholder):
-        log.warn('Unkown installation at %s', placeholder)
-        return False
-    found = False
-    for file in os.listdir(placeholder):
-        if fnmatch.fnmatch(file, 'setuptools*.egg-info'):
-            found = True
-            break
-    if not found:
-        log.warn('Could not locate setuptools*.egg-info')
-        return
-
-    log.warn('Removing elements out of the way...')
-    pkg_info = os.path.join(placeholder, file)
-    if os.path.isdir(pkg_info):
-        patched = _patch_egg_dir(pkg_info)
-    else:
-        patched = _patch_file(pkg_info, SETUPTOOLS_PKG_INFO)
-
-    if not patched:
-        log.warn('%s already patched.', pkg_info)
-        return False
-    # now let's move the files out of the way
-    for element in ('setuptools', 'pkg_resources.py', 'site.py'):
-        element = os.path.join(placeholder, element)
-        if os.path.exists(element):
-            _rename_path(element)
-        else:
-            log.warn('Could not find the %s element of the '
-                     'Setuptools distribution', element)
-    return True
-
-_remove_flat_installation = _no_sandbox(_remove_flat_installation)
-
-def _after_install(dist):
-    log.warn('After install bootstrap.')
-    placeholder = dist.get_command_obj('install').install_purelib
-    _create_fake_setuptools_pkg_info(placeholder)
-
-def _create_fake_setuptools_pkg_info(placeholder):
-    if not placeholder or not os.path.exists(placeholder):
-        log.warn('Could not find the install location')
-        return
-    pyver = '%s.%s' % (sys.version_info[0], sys.version_info[1])
-    setuptools_file = 'setuptools-%s-py%s.egg-info' % \
-            (SETUPTOOLS_FAKED_VERSION, pyver)
-    pkg_info = os.path.join(placeholder, setuptools_file)
-    if os.path.exists(pkg_info):
-        log.warn('%s already exists', pkg_info)
-        return
-
-    log.warn('Creating %s', pkg_info)
-    f = open(pkg_info, 'w')
-    try:
-        f.write(SETUPTOOLS_PKG_INFO)
-    finally:
-        f.close()
-
-    pth_file = os.path.join(placeholder, 'setuptools.pth')
-    log.warn('Creating %s', pth_file)
-    f = open(pth_file, 'w')
-    try:
-        f.write(os.path.join(os.curdir, setuptools_file))
-    finally:
-        f.close()
-
-_create_fake_setuptools_pkg_info = _no_sandbox(_create_fake_setuptools_pkg_info)
-
-def _patch_egg_dir(path):
-    # let's check if it's already patched
-    pkg_info = os.path.join(path, 'EGG-INFO', 'PKG-INFO')
-    if os.path.exists(pkg_info):
-        if _same_content(pkg_info, SETUPTOOLS_PKG_INFO):
-            log.warn('%s already patched.', pkg_info)
-            return False
-    _rename_path(path)
-    os.mkdir(path)
-    os.mkdir(os.path.join(path, 'EGG-INFO'))
-    pkg_info = os.path.join(path, 'EGG-INFO', 'PKG-INFO')
-    f = open(pkg_info, 'w')
-    try:
-        f.write(SETUPTOOLS_PKG_INFO)
-    finally:
-        f.close()
-    return True
-
-_patch_egg_dir = _no_sandbox(_patch_egg_dir)
-
-def _before_install():
-    log.warn('Before install bootstrap.')
-    _fake_setuptools()
-
-
-def _under_prefix(location):
-    if 'install' not in sys.argv:
-        return True
-    args = sys.argv[sys.argv.index('install')+1:]
-    for index, arg in enumerate(args):
-        for option in ('--root', '--prefix'):
-            if arg.startswith('%s=' % option):
-                top_dir = arg.split('root=')[-1]
-                return location.startswith(top_dir)
-            elif arg == option:
-                if len(args) > index:
-                    top_dir = args[index+1]
-                    return location.startswith(top_dir)
-        if arg == '--user' and USER_SITE is not None:
-            return location.startswith(USER_SITE)
-    return True
-
-
-def _fake_setuptools():
-    log.warn('Scanning installed packages')
-    try:
-        import pkg_resources
-    except ImportError:
-        # we're cool
-        log.warn('Setuptools or Distribute does not seem to be installed.')
-        return
-    ws = pkg_resources.working_set
-    try:
-        setuptools_dist = ws.find(pkg_resources.Requirement.parse('setuptools',
-                                  replacement=False))
-    except TypeError:
-        # old distribute API
-        setuptools_dist = ws.find(pkg_resources.Requirement.parse('setuptools'))
-
-    if setuptools_dist is None:
-        log.warn('No setuptools distribution found')
-        return
-    # detecting if it was already faked
-    setuptools_location = setuptools_dist.location
-    log.warn('Setuptools installation detected at %s', setuptools_location)
-
-    # if --root or --preix was provided, and if
-    # setuptools is not located in them, we don't patch it
-    if not _under_prefix(setuptools_location):
-        log.warn('Not patching, --root or --prefix is installing Distribute'
-                 ' in another location')
-        return
-
-    # let's see if its an egg
-    if not setuptools_location.endswith('.egg'):
-        log.warn('Non-egg installation')
-        res = _remove_flat_installation(setuptools_location)
-        if not res:
-            return
-    else:
-        log.warn('Egg installation')
-        pkg_info = os.path.join(setuptools_location, 'EGG-INFO', 'PKG-INFO')
-        if (os.path.exists(pkg_info) and
-            _same_content(pkg_info, SETUPTOOLS_PKG_INFO)):
-            log.warn('Already patched.')
-            return
-        log.warn('Patching...')
-        # let's create a fake egg replacing setuptools one
-        res = _patch_egg_dir(setuptools_location)
-        if not res:
-            return
-    log.warn('Patched done.')
-    _relaunch()
-
-
-def _relaunch():
-    log.warn('Relaunching...')
-    # we have to relaunch the process
-    # pip marker to avoid a relaunch bug
-    if sys.argv[:3] == ['-c', 'install', '--single-version-externally-managed']:
-        sys.argv[0] = 'setup.py'
-    args = [sys.executable] + sys.argv
-    sys.exit(subprocess.call(args))
-
-
-def _extractall(self, path=".", members=None):
-    """Extract all members from the archive to the current working
-       directory and set owner, modification time and permissions on
-       directories afterwards. `path' specifies a different directory
-       to extract to. `members' is optional and must be a subset of the
-       list returned by getmembers().
-    """
-    import copy
-    import operator
-    from tarfile import ExtractError
-    directories = []
-
-    if members is None:
-        members = self
-
-    for tarinfo in members:
-        if tarinfo.isdir():
-            # Extract directories with a safe mode.
-            directories.append(tarinfo)
-            tarinfo = copy.copy(tarinfo)
-            tarinfo.mode = 448 # decimal for oct 0700
-        self.extract(tarinfo, path)
-
-    # Reverse sort directories.
-    if sys.version_info < (2, 4):
-        def sorter(dir1, dir2):
-            return cmp(dir1.name, dir2.name)
-        directories.sort(sorter)
-        directories.reverse()
-    else:
-        directories.sort(key=operator.attrgetter('name'), reverse=True)
-
-    # Set correct owner, mtime and filemode on directories.
-    for tarinfo in directories:
-        dirpath = os.path.join(path, tarinfo.name)
-        try:
-            self.chown(tarinfo, dirpath)
-            self.utime(tarinfo, dirpath)
-            self.chmod(tarinfo, dirpath)
-        except ExtractError:
-            e = sys.exc_info()[1]
-            if self.errorlevel > 1:
-                raise
-            else:
-                self._dbg(1, "tarfile: %s" % e)
-
-
-def main(argv, version=DEFAULT_VERSION):
-    """Install or upgrade setuptools and EasyInstall"""
-    tarball = download_setuptools()
-    _install(tarball)
-
-
-if __name__ == '__main__':
-    main(sys.argv[1:])
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/distutils-init.py
+++ /dev/null
@@ -1,97 +0,0 @@
-import os
-import sys
-import warnings 
-import opcode # opcode is not a virtualenv module, so we can use it to find the stdlib
-              # Important! To work on pypy, this must be a module that resides in the
-              # lib-python/modified-x.y.z directory
-
-dirname = os.path.dirname
-
-distutils_path = os.path.join(os.path.dirname(opcode.__file__), 'distutils')
-if os.path.normpath(distutils_path) == os.path.dirname(os.path.normpath(__file__)):
-    warnings.warn(
-        "The virtualenv distutils package at %s appears to be in the same location as the system distutils?")
-else:
-    __path__.insert(0, distutils_path)
-    exec(open(os.path.join(distutils_path, '__init__.py')).read())
-
-try:
-    import dist
-    import sysconfig
-except ImportError:
-    from distutils import dist, sysconfig
-try:
-    basestring
-except NameError:
-    basestring = str
-
-## patch build_ext (distutils doesn't know how to get the libs directory
-## path on windows - it hardcodes the paths around the patched sys.prefix)
-
-if sys.platform == 'win32':
-    from distutils.command.build_ext import build_ext as old_build_ext
-    class build_ext(old_build_ext):
-        def finalize_options (self):
-            if self.library_dirs is None:
-                self.library_dirs = []
-            elif isinstance(self.library_dirs, basestring):
-                self.library_dirs = self.library_dirs.split(os.pathsep)
-            
-            self.library_dirs.insert(0, os.path.join(sys.real_prefix, "Libs"))
-            old_build_ext.finalize_options(self)
-            
-    from distutils.command import build_ext as build_ext_module 
-    build_ext_module.build_ext = build_ext
-
-## distutils.dist patches:
-
-old_find_config_files = dist.Distribution.find_config_files
-def find_config_files(self):
-    found = old_find_config_files(self)
-    system_distutils = os.path.join(distutils_path, 'distutils.cfg')
-    #if os.path.exists(system_distutils):
-    #    found.insert(0, system_distutils)
-        # What to call the per-user config file
-    if os.name == 'posix':
-        user_filename = ".pydistutils.cfg"
-    else:
-        user_filename = "pydistutils.cfg"
-    user_filename = os.path.join(sys.prefix, user_filename)
-    if os.path.isfile(user_filename):
-        for item in list(found):
-            if item.endswith('pydistutils.cfg'):
-                found.remove(item)
-        found.append(user_filename)
-    return found
-dist.Distribution.find_config_files = find_config_files
-
-## distutils.sysconfig patches:
-
-old_get_python_inc = sysconfig.get_python_inc
-def sysconfig_get_python_inc(plat_specific=0, prefix=None):
-    if prefix is None:
-        prefix = sys.real_prefix
-    return old_get_python_inc(plat_specific, prefix)
-sysconfig_get_python_inc.__doc__ = old_get_python_inc.__doc__
-sysconfig.get_python_inc = sysconfig_get_python_inc
-
-old_get_python_lib = sysconfig.get_python_lib
-def sysconfig_get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
-    if standard_lib and prefix is None:
-        prefix = sys.real_prefix
-    return old_get_python_lib(plat_specific, standard_lib, prefix)
-sysconfig_get_python_lib.__doc__ = old_get_python_lib.__doc__
-sysconfig.get_python_lib = sysconfig_get_python_lib
-
-old_get_config_vars = sysconfig.get_config_vars
-def sysconfig_get_config_vars(*args):
-    real_vars = old_get_config_vars(*args)
-    if sys.platform == 'win32':
-        lib_dir = os.path.join(sys.real_prefix, "libs")
-        if isinstance(real_vars, dict) and 'LIBDIR' not in real_vars:
-            real_vars['LIBDIR'] = lib_dir # asked for all
-        elif isinstance(real_vars, list) and 'LIBDIR' in args:
-            real_vars = real_vars + [lib_dir] # asked for list
-    return real_vars
-sysconfig_get_config_vars.__doc__ = old_get_config_vars.__doc__
-sysconfig.get_config_vars = sysconfig_get_config_vars
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/distutils.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-# This is a config file local to this virtualenv installation
-# You may include options that will be used by all distutils commands,
-# and by easy_install.  For instance:
-#
-#   [easy_install]
-#   find_links = http://mylocalsite
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/ez_setup.py
+++ /dev/null
@@ -1,285 +0,0 @@
-#!python
-"""Bootstrap setuptools installation
-
-If you want to use setuptools in your package's setup.py, just include this
-file in the same directory with it, and add this to the top of your setup.py::
-
-    from ez_setup import use_setuptools
-    use_setuptools()
-
-If you want to require a specific version of setuptools, set a download
-mirror, or use an alternate download directory, you can do so by supplying
-the appropriate options to ``use_setuptools()``.
-
-This file can also be run as a script to install or upgrade setuptools.
-"""
-import sys
-DEFAULT_VERSION = "0.6c11"
-DEFAULT_URL     = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
-
-md5_data = {
-    'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca',
-    'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb',
-    'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b',
-    'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a',
-    'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618',
-    'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac',
-    'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5',
-    'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4',
-    'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c',
-    'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b',
-    'setuptools-0.6c10-py2.3.egg': 'ce1e2ab5d3a0256456d9fc13800a7090',
-    'setuptools-0.6c10-py2.4.egg': '57d6d9d6e9b80772c59a53a8433a5dd4',
-    'setuptools-0.6c10-py2.5.egg': 'de46ac8b1c97c895572e5e8596aeb8c7',
-    'setuptools-0.6c10-py2.6.egg': '58ea40aef06da02ce641495523a0b7f5',
-    'setuptools-0.6c11-py2.3.egg': '2baeac6e13d414a9d28e7ba5b5a596de',
-    'setuptools-0.6c11-py2.4.egg': 'bd639f9b0eac4c42497034dec2ec0c2b',
-    'setuptools-0.6c11-py2.5.egg': '64c94f3bf7a72a13ec83e0b24f2749b2',
-    'setuptools-0.6c11-py2.6.egg': 'bfa92100bd772d5a213eedd356d64086',
-    'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27',
-    'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277',
-    'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa',
-    'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e',
-    'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e',
-    'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f',
-    'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2',
-    'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc',
-    'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167',
-    'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64',
-    'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d',
-    'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20',
-    'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab',
-    'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53',
-    'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2',
-    'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e',
-    'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372',
-    'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902',
-    'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de',
-    'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b',
-    'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03',
-    'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a',
-    'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6',
-    'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a',
-}
-
-import sys, os
-try: from hashlib import md5
-except ImportError: from md5 import md5
-
-def _validate_md5(egg_name, data):
-    if egg_name in md5_data:
-        digest = md5(data).hexdigest()
-        if digest != md5_data[egg_name]:
-            print >>sys.stderr, (
-                "md5 validation of %s failed!  (Possible download problem?)"
-                % egg_name
-            )
-            sys.exit(2)
-    return data
-
-def use_setuptools(
-    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
-    download_delay=15
-):
-    """Automatically find/download setuptools and make it available on sys.path
-
-    `version` should be a valid setuptools version number that is available
-    as an egg for download under the `download_base` URL (which should end with
-    a '/').  `to_dir` is the directory where setuptools will be downloaded, if
-    it is not already available.  If `download_delay` is specified, it should
-    be the number of seconds that will be paused before initiating a download,
-    should one be required.  If an older version of setuptools is installed,
-    this routine will print a message to ``sys.stderr`` and raise SystemExit in
-    an attempt to abort the calling script.
-    """
-    was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules
-    def do_download():
-        egg = download_setuptools(version, download_base, to_dir, download_delay)
-        sys.path.insert(0, egg)
-        import setuptools; setuptools.bootstrap_install_from = egg
-    try:
-        import pkg_resources
-    except ImportError:
-        return do_download()       
-    try:
-        pkg_resources.require("setuptools>="+version); return
-    except pkg_resources.VersionConflict:
-        e = sys.exc_info()[1]
-        if was_imported:
-            print >>sys.stderr, (
-            "The required version of setuptools (>=%s) is not available, and\n"
-            "can't be installed while this script is running. Please install\n"
-            " a more recent version first, using 'easy_install -U setuptools'."
-            "\n\n(Currently using %r)"
-            ) % (version, e.args[0])
-            sys.exit(2)
-    except pkg_resources.DistributionNotFound:
-        pass
-
-    del pkg_resources, sys.modules['pkg_resources']    # reload ok
-    return do_download()
-
-def download_setuptools(
-    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
-    delay = 15
-):
-    """Download setuptools from a specified location and return its filename
-
-    `version` should be a valid setuptools version number that is available
-    as an egg for download under the `download_base` URL (which should end
-    with a '/'). `to_dir` is the directory where the egg will be downloaded.
-    `delay` is the number of seconds to pause before an actual download attempt.
-    """
-    import urllib2, shutil
-    egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3])
-    url = download_base + egg_name
-    saveto = os.path.join(to_dir, egg_name)
-    src = dst = None
-    if not os.path.exists(saveto):  # Avoid repeated downloads
-        try:
-            from distutils import log
-            if delay:
-                log.warn("""
----------------------------------------------------------------------------
-This script requires setuptools version %s to run (even to display
-help).  I will attempt to download it for you (from
-%s), but
-you may need to enable firewall access for this script first.
-I will start the download in %d seconds.
-
-(Note: if this machine does not have network access, please obtain the file
-
-   %s
-
-and place it in this directory before rerunning this script.)
----------------------------------------------------------------------------""",
-                    version, download_base, delay, url
-                ); from time import sleep; sleep(delay)
-            log.warn("Downloading %s", url)
-            src = urllib2.urlopen(url)
-            # Read/write all in one block, so we don't create a corrupt file
-            # if the download is interrupted.
-            data = _validate_md5(egg_name, src.read())
-            dst = open(saveto,"wb"); dst.write(data)
-        finally:
-            if src: src.close()
-            if dst: dst.close()
-    return os.path.realpath(saveto)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-def main(argv, version=DEFAULT_VERSION):
-    """Install or upgrade setuptools and EasyInstall"""
-    try:
-        import setuptools
-    except ImportError:
-        egg = None
-        try:
-            egg = download_setuptools(version, delay=0)
-            sys.path.insert(0,egg)
-            from setuptools.command.easy_install import main
-            return main(list(argv)+[egg])   # we're done here
-        finally:
-            if egg and os.path.exists(egg):
-                os.unlink(egg)
-    else:
-        if setuptools.__version__ == '0.0.1':
-            print >>sys.stderr, (
-            "You have an obsolete version of setuptools installed.  Please\n"
-            "remove it from your system entirely before rerunning this script."
-            )
-            sys.exit(2)
-
-    req = "setuptools>="+version
-    import pkg_resources
-    try:
-        pkg_resources.require(req)
-    except pkg_resources.VersionConflict:
-        try:
-            from setuptools.command.easy_install import main
-        except ImportError:
-            from easy_install import main
-        main(list(argv)+[download_setuptools(delay=0)])
-        sys.exit(0) # try to force an exit
-    else:
-        if argv:
-            from setuptools.command.easy_install import main
-            main(argv)
-        else:
-            print("Setuptools version",version,"or greater has been installed.")
-            print('(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)')
-
-def update_md5(filenames):
-    """Update our built-in md5 registry"""
-
-    import re
-
-    for name in filenames:
-        base = os.path.basename(name)
-        f = open(name,'rb')
-        md5_data[base] = md5(f.read()).hexdigest()
-        f.close()
-
-    data = ["    %r: %r,\n" % it for it in md5_data.items()]
-    data.sort()
-    repl = "".join(data)
-
-    import inspect
-    srcfile = inspect.getsourcefile(sys.modules[__name__])
-    f = open(srcfile, 'rb'); src = f.read(); f.close()
-
-    match = re.search("\nmd5_data = {\n([^}]+)}", src)
-    if not match:
-        print >>sys.stderr, "Internal error!"
-        sys.exit(2)
-
-    src = src[:match.start(1)] + repl + src[match.end(1):]
-    f = open(srcfile,'w')
-    f.write(src)
-    f.close()
-
-
-if __name__=='__main__':
-    if len(sys.argv)>2 and sys.argv[1]=='--md5update':
-        update_md5(sys.argv[2:])
-    else:
-        main(sys.argv[1:])
-
-
-
-
-
-
deleted file mode 100644
--- a/other-licenses/virtualenv/virtualenv_embedded/site.py
+++ /dev/null
@@ -1,737 +0,0 @@
-"""Append module search paths for third-party packages to sys.path.
-
-****************************************************************
-* This module is automatically imported during initialization. *
-****************************************************************
-
-In earlier versions of Python (up to 1.5a3), scripts or modules that
-needed to use site-specific modules would place ``import site''
-somewhere near the top of their code.  Because of the automatic
-import, this is no longer necessary (but code that does it still
-works).
-
-This will append site-specific paths to the module search path.  On
-Unix, it starts with sys.prefix and sys.exec_prefix (if different) and
-appends lib/python<version>/site-packages as well as lib/site-python.
-It also supports the Debian convention of
-lib/python<version>/dist-packages.  On other platforms (mainly Mac and
-Windows), it uses just sys.prefix (and sys.exec_prefix, if different,
-but this is unlikely).  The resulting directories, if they exist, are
-appended to sys.path, and also inspected for path configuration files.
-
-FOR DEBIAN, this sys.path is augmented with directories in /usr/local.
-Local addons go into /usr/local/lib/python<version>/site-packages
-(resp. /usr/local/lib/site-python), Debian addons install into
-/usr/{lib,share}/python<version>/dist-packages.
-
-A path configuration file is a file whose name has the form
-<package>.pth; its contents are additional directories (one per line)
-to be added to sys.path.  Non-existing directories (or
-non-directories) are never added to sys.path; no directory is added to
-sys.path more than once.  Blank lines and lines beginning with
-'#' are skipped. Lines starting with 'import' are executed.
-
-For example, suppose sys.prefix and sys.exec_prefix are set to
-/usr/local and there is a directory /usr/local/lib/python2.X/site-packages
-with three subdirectories, foo, bar and spam, and two path
-configuration files, foo.pth and bar.pth.  Assume foo.pth contains the
-following:
-
-  # foo package configuration
-  foo
-  bar
-  bletch
-
-and bar.pth contains:
-
-  # bar package configuration
-  bar
-
-Then the following directories are added to sys.path, in this order:
-
-  /usr/local/lib/python2.X/site-packages/bar
-  /usr/local/lib/python2.X/site-packages/foo
-
-Note that bletch is omitted because it doesn't exist; bar precedes foo
-because bar.pth comes alphabetically before foo.pth; and spam is
-omitted because it is not mentioned in either path configuration file.
-
-After these path manipulations, an attempt is made to import a module
-named sitecustomize, which can perform arbitrary additional
-site-specific customizations.  If this import fails with an
-ImportError exception, it is silently ignored.
-
-"""
-
-import sys
-import os
-try:
-    import __builtin__ as builtins
-except ImportError:
-    import builtins
-try:
-    set
-except NameError:
-    from sets import Set as set
-
-# Prefixes for site-packages; add additional prefixes like /usr/local here
-PREFIXES = [sys.prefix, sys.exec_prefix]
-# Enable per user site-packages directory
-# set it to False to disable the feature or True to force the feature
-ENABLE_USER_SITE = None
-# for distutils.commands.install
-USER_SITE = None
-USER_BASE = None
-
-_is_pypy = hasattr(sys, 'pypy_version_info')
-_is_jython = sys.platform[:4] == 'java'
-if _is_jython:
-    ModuleType = type(os)
-
-def makepath(*paths):
-    dir = os.path.join(*paths)
-    if _is_jython and (dir == '__classpath__' or
-                       dir.startswith('__pyclasspath__')):
-        return dir, dir
-    dir = os.path.abspath(dir)
-    return dir, os.path.normcase(dir)
-
-def abs__file__():
-    """Set all module' __file__ attribute to an absolute path"""
-    for m in sys.modules.values():
-        if ((_is_jython and not isinstance(m, ModuleType)) or
-            hasattr(m, '__loader__')):
-            # only modules need the abspath in Jython. and don't mess
-            # with a PEP 302-supplied __file__
-            continue
-        f = getattr(m, '__file__', None)
-        if f is None:
-            continue
-        m.__file__ = os.path.abspath(f)
-
-def removeduppaths():
-    """ Remove duplicate entries from sys.path along with making them
-    absolute"""
-    # This ensures that the initial path provided by the interpreter contains
-    # only absolute pathnames, even if we're running from the build directory.
-    L = []
-    known_paths = set()
-    for dir in sys.path:
-        # Filter out duplicate paths (on case-insensitive file systems also
-        # if they only differ in case); turn relative paths into absolute
-        # paths.
-        dir, dircase = makepath(dir)
-        if not dircase in known_paths:
-            L.append(dir)
-            known_paths.add(dircase)
-    sys.path[:] = L
-    return known_paths
-
-# XXX This should not be part of site.py, since it is needed even when
-# using the -S option for Python.  See http://www.python.org/sf/586680
-def addbuilddir():
-    """Append ./build/lib.<platform> in case we're running in the build dir
-    (especially for Guido :-)"""
-    from distutils.util import get_platform
-    s = "build/lib.%s-%.3s" % (get_platform(), sys.version)
-    if hasattr(sys, 'gettotalrefcount'):
-        s += '-pydebug'
-    s = os.path.join(os.path.dirname(sys.path[-1]), s)
-    sys.path.append(s)
-
-def _init_pathinfo():
-    """Return a set containing all existing directory entries from sys.path"""
-    d = set()
-    for dir in sys.path:
-        try:
-            if os.path.isdir(dir):
-                dir, dircase = makepath(dir)
-                d.add(dircase)
-        except TypeError:
-            continue
-    return d
-
-def addpackage(sitedir, name, known_paths):
-    """Add a new path to known_paths by combining sitedir and 'name' or execute
-    sitedir if it starts with 'import'"""
-    if known_paths is None:
-        _init_pathinfo()
-        reset = 1
-    else:
-        reset = 0
-    fullname = os.path.join(sitedir, name)
-    try:
-        f = open(fullname, "rU")
-    except IOError:
-        return
-    try:
-        for line in f:
-            if line.startswith("#"):
-                continue
-            if line.startswith("import"):
-                exec(line)
-                continue
-            line = line.rstrip()
-            dir, dircase = makepath(sitedir, line)
-            if not dircase in known_paths and os.path.exists(dir):
-                sys.path.append(dir)
-                known_paths.add(dircase)
-    finally:
-        f.close()
-    if reset:
-        known_paths = None
-    return known_paths
-
-def addsitedir(sitedir, known_paths=None):
-    """Add 'sitedir' argument to sys.path if missing and handle .pth files in
-    'sitedir'"""
-    if known_paths is None:
-        known_paths = _init_pathinfo()
-        reset = 1
-    else:
-        reset = 0
-    sitedir, sitedircase = makepath(sitedir)
-    if not sitedircase in known_paths:
-        sys.path.append(sitedir)        # Add path component
-    try:
-        names = os.listdir(sitedir)
-    except os.error:
-        return
-    names.sort()
-    for name in names:
-        if name.endswith(os.extsep + "pth"):
-            addpackage(sitedir, name, known_paths)
-    if reset:
-        known_paths = None
-    return known_paths
-
-def addsitepackages(known_paths, sys_prefix=sys.prefix, exec_prefix=sys.exec_prefix):
-    """Add site-packages (and possibly site-python) to sys.path"""
-    prefixes = [os.path.join(sys_prefix, "local"), sys_prefix]
-    if exec_prefix != sys_prefix:
-        prefixes.append(os.path.join(exec_prefix, "local"))
-
-    for prefix in prefixes:
-        if prefix:
-            if sys.platform in ('os2emx', 'riscos') or _is_jython:
-                sitedirs = [os.path.join(prefix, "Lib", "site-packages")]
-            elif _is_pypy:
-                sitedirs = [os.path.join(prefix, 'site-packages')]
-            elif sys.platform == 'darwin' and prefix == sys_prefix:
-
-                if prefix.startswith("/System/Library/Frameworks/"): # Apple's Python
-
-                    sitedirs = [os.path.join("/Library/Python", sys.version[:3], "site-packages"),
-                                os.path.join(prefix, "Extras", "lib", "python")]
-
-                else: # any other Python distros on OSX work this way
-                    sitedirs = [os.path.join(prefix, "lib",
-                                             "python" + sys.version[:3], "site-packages")]
-
-            elif os.sep == '/':
-                sitedirs = [os.path.join(prefix,
-                                         "lib",
-                                         "python" + sys.version[:3],
-                                         "site-packages"),
-                            os.path.join(prefix, "lib", "site-python"),
-                            os.path.join(prefix, "python" + sys.version[:3], "lib-dynload")]
-                lib64_dir = os.path.join(prefix, "lib64", "python" + sys.version[:3], "site-packages")
-                if (os.path.exists(lib64_dir) and 
-                    os.path.realpath(lib64_dir) not in [os.path.realpath(p) for p in sitedirs]):
-                    sitedirs.append(lib64_dir)
-                try:
-                    # sys.getobjects only available in --with-pydebug build
-                    sys.getobjects
-                    sitedirs.insert(0, os.path.join(sitedirs[0], 'debug'))
-                except AttributeError:
-                    pass
-                # Debian-specific dist-packages directories:
-                if sys.version[0] == '2':
-                    sitedirs.append(os.path.join(prefix, "lib",
-                                                 "python" + sys.version[:3],
-                                                 "dist-packages"))
-                else:
-                    sitedirs.append(os.path.join(prefix, "lib",
-                                                 "python" + sys.version[0],
-                                                 "dist-packages"))
-                sitedirs.append(os.path.join(prefix, "local/lib",
-                                             "python" + sys.version[:3],
-                                             "dist-packages"))
-                sitedirs.append(os.path.join(prefix, "lib", "dist-python"))
-            else:
-                sitedirs = [prefix, os.path.join(prefix, "lib", "site-packages")]
-            if sys.platform == 'darwin':
-                # for framework builds *only* we add the standard Apple
-                # locations. Currently only per-user, but /Library and
-                # /Network/Library could be added too
-                if 'Python.framework' in prefix:
-                    home = os.environ.get('HOME')
-                    if home:
-                        sitedirs.append(
-                            os.path.join(home,
-                                         'Library',
-                                         'Python',
-                                         sys.version[:3],
-                                         'site-packages'))
-            for sitedir in sitedirs:
-                if os.path.isdir(sitedir):
-                    addsitedir(sitedir, known_paths)
-    return None
-
-def check_enableusersite():
-    """Check if user site directory is safe for inclusion
-
-    The function tests for the command line flag (including environment var),
-    process uid/gid equal to effective uid/gid.
-
-    None: Disabled for security reasons
-    False: Disabled by user (command line option)
-    True: Safe and enabled
-    """
-    if hasattr(sys, 'flags') and getattr(sys.flags, 'no_user_site', False):
-        return False
-
-    if hasattr(os, "getuid") and hasattr(os, "geteuid"):
-        # check process uid == effective uid
-        if os.geteuid() != os.getuid():
-            return None
-    if hasattr(os, "getgid") and hasattr(os, "getegid"):
-        # check process gid == effective gid
-        if os.getegid() != os.getgid():
-            return None
-
-    return True
-
-def addusersitepackages(known_paths):
-    """Add a per user site-package to sys.path
-
-    Each user has its own python directory with site-packages in the
-    home directory.
-
-    USER_BASE is the root directory for all Python versions
-
-    USER_SITE is the user specific site-packages directory
-
-    USER_SITE/.. can be used for data.
-    """
-    global USER_BASE, USER_SITE, ENABLE_USER_SITE
-    env_base = os.environ.get("PYTHONUSERBASE", None)
-
-    def joinuser(*args):
-        return os.path.expanduser(os.path.join(*args))
-
-    #if sys.platform in ('os2emx', 'riscos'):
-    #    # Don't know what to put here
-    #    USER_BASE = ''
-    #    USER_SITE = ''
-    if os.name == "nt":
-        base = os.environ.get("APPDATA") or "~"
-        if env_base:
-            USER_BASE = env_base
-        else:
-            USER_BASE = joinuser(base, "Python")
-        USER_SITE = os.path.join(USER_BASE,
-                                 "Python" + sys.version[0] + sys.version[2],
-                                 "site-packages")
-    else:
-        if env_base:
-            USER_BASE = env_base
-        else:
-            USER_BASE = joinuser("~", ".local")
-        USER_SITE = os.path.join(USER_BASE, "lib",
-                                 "python" + sys.version[:3],
-                                 "site-packages")
-
-    if ENABLE_USER_SITE and os.path.isdir(USER_SITE):
-        addsitedir(USER_SITE, known_paths)
-    if ENABLE_USER_SITE:
-        for dist_libdir in ("lib", "local/lib"):
-            user_site = os.path.join(USER_BASE, dist_libdir,
-                                     "python" + sys.version[:3],
-                                     "dist-packages")
-            if os.path.isdir(user_site):
-                addsitedir(user_site, known_paths)
-    return known_paths
-
-
-
-def setBEGINLIBPATH():
-    """The OS/2 EMX port has optional extension modules that do double duty
-    as DLLs (and must use the .DLL file extension) for other extensions.
-    The library search path needs to be amended so these will be found
-    during module import.  Use BEGINLIBPATH so that these are at the start
-    of the library search path.
-
-    """
-    dllpath = os.path.join(sys.prefix, "Lib", "lib-dynload")
-    libpath = os.environ['BEGINLIBPATH'].split(';')
-    if libpath[-1]:
-        libpath.append(dllpath)
-    else:
-        libpath[-1] = dllpath
-    os.environ['BEGINLIBPATH'] = ';'.join(libpath)
-
-
-def setquit():
-    """Define new built-ins 'quit' and 'exit'.
-    These are simply strings that display a hint on how to exit.
-
-    """
-    if os.sep == ':':
-        eof = 'Cmd-Q'
-    elif os.sep == '\\':
-        eof = 'Ctrl-Z plus Return'
-    else:
-        eof = 'Ctrl-D (i.e. EOF)'
-
-    class Quitter(object):
-        def __init__(self, name):
-            self.name = name
-        def __repr__(self):
-            return 'Use %s() or %s to exit' % (self.name, eof)
-        def __call__(self, code=None):
-            # Shells like IDLE catch the SystemExit, but listen when their
-            # stdin wrapper is closed.
-            try:
-                sys.stdin.close()
-            except:
-                pass
-            raise SystemExit(code)
-    builtins.quit = Quitter('quit')
-    builtins.exit = Quitter('exit')
-
-
-class _Printer(object):
-    """interactive prompt objects for printing the license text, a list of
-    contributors and the copyright notice."""
-
-    MAXLINES = 23
-
-    def __init__(self, name, data, files=(), dirs=()):
-        self.__name = name
-        self.__data = data
-        self.__files = files
-        self.__dirs = dirs
-        self.__lines = None
-
-    def __setup(self):
-        if self.__lines:
-            return
-        data = None
-        for dir in self.__dirs:
-            for filename in self.__files:
-                filename = os.path.join(dir, filename)
-                try:
-                    fp = file(filename, "rU")
-                    data = fp.read()
-                    fp.close()
-                    break
-                except IOError:
-                    pass
-            if data:
-                break
-        if not data:
-            data = self.__data
-        self.__lines = data.split('\n')
-        self.__linecnt = len(self.__lines)
-
-    def __repr__(self):
-        self.__setup()
-        if len(self.__lines) <= self.MAXLINES:
-            return "\n".join(self.__lines)
-        else:
-            return "Type %s() to see the full %s text" % ((self.__name,)*2)
-
-    def __call__(self):
-        self.__setup()
-        prompt = 'Hit Return for more, or q (and Return) to quit: '
-        lineno = 0
-        while 1:
-            try:
-                for i in range(lineno, lineno + self.MAXLINES):
-                    print(self.__lines[i])
-            except IndexError:
-                break
-            else:
-                lineno += self.MAXLINES
-                key = None
-                while key is None:
-                    try:
-                        key = raw_input(prompt)
-                    except NameError:
-                        key = input(prompt)
-                    if key not in ('', 'q'):
-                        key = None
-                if key == 'q':
-                    break
-
-def setcopyright():
-    """Set 'copyright' and 'credits' in __builtin__"""
-    builtins.copyright = _Printer("copyright", sys.copyright)
-    if _is_jython:
-        builtins.credits = _Printer(
-            "credits",
-            "Jython is maintained by the Jython developers (www.jython.org).")
-    elif _is_pypy:
-        builtins.credits = _Printer(
-            "credits",
-            "PyPy is maintained by the PyPy developers: http://codespeak.net/pypy")
-    else:
-        builtins.credits = _Printer("credits", """\
-    Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
-    for supporting Python development.  See www.python.org for more information.""")
-    here = os.path.dirname(os.__file__)
-    builtins.license = _Printer(
-        "license", "See http://www.python.org/%.3s/license.html" % sys.version,
-        ["LICENSE.txt", "LICENSE"],
-        [os.path.join(here, os.pardir), here, os.curdir])
-
-
-class _Helper(object):
-    """Define the built-in 'help'.
-    This is a wrapper around pydoc.help (with a twist).
-
-    """
-
-    def __repr__(self):
-        return "Type help() for interactive help, " \
-               "or help(object) for help about object."
-    def __call__(self, *args, **kwds):
-        import pydoc
-        return pydoc.help(*args, **kwds)
-
-def sethelper():
-    builtins.help = _Helper()
-
-def aliasmbcs():
-    """On Windows, some default encodings are not provided by Python,
-    while they are always available as "mbcs" in each locale. Make
-    them usable by aliasing to "mbcs" in such a case."""
-    if sys.platform == 'win32':
-        import locale, codecs
-        enc = locale.getdefaultlocale()[1]
-        if enc.startswith('cp'):            # "cp***" ?
-            try:
-                codecs.lookup(enc)
-            except LookupError:
-                import encodings
-                encodings._cache[enc] = encodings._unknown
-                encodings.aliases.aliases[enc] = 'mbcs'
-
-def setencoding():
-    """Set the string encoding used by the Unicode implementation.  The
-    default is 'ascii', but if you're willing to experiment, you can
-    change this."""
-    encoding = "ascii" # Default value set by _PyUnicode_Init()
-    if 0:
-        # Enable to support locale aware default string encodings.
-        import locale
-        loc = locale.getdefaultlocale()
-        if loc[1]:
-            encoding = loc[1]
-    if 0:
-        # Enable to switch off string to Unicode coercion and implicit
-        # Unicode to string conversion.
-        encoding = "undefined"
-    if encoding != "ascii":
-        # On Non-Unicode builds this will raise an AttributeError...
-        sys.setdefaultencoding(encoding) # Needs Python Unicode build !
-
-
-def execsitecustomize():
-    """Run custom site specific code, if available."""
-    try:
-        import sitecustomize
-    except ImportError:
-        pass
-
-def virtual_install_main_packages():
-    f = open(os.path.join(os.path.dirname(__file__), 'orig-prefix.txt'))
-    sys.real_prefix = f.read().strip()
-    f.close()
-    pos = 2
-    hardcoded_relative_dirs = []
-    if sys.path[0] == '':
-        pos += 1
-    if sys.platform == 'win32':
-        paths = [os.path.join(sys.real_prefix, 'Lib'), os.path.join(sys.real_prefix, 'DLLs')]
-    elif _is_jython:
-        paths = [os.path.join(sys.real_prefix, 'Lib')]
-    elif _is_pypy:
-        if sys.pypy_version_info >= (1, 5):
-            cpyver = '%d.%d' % sys.version_info[:2]
-        else:
-            cpyver = '%d.%d.%d' % sys.version_info[:3]
-        paths = [os.path.join(sys.real_prefix, 'lib_pypy'),
-                 os.path.join(sys.real_prefix, 'lib-python', 'modified-%s' % cpyver),
-                 os.path.join(sys.real_prefix, 'lib-python', cpyver)]
-        hardcoded_relative_dirs = paths[:] # for the special 'darwin' case below
-        #
-        # This is hardcoded in the Python executable, but relative to sys.prefix:
-        for path in paths[:]:
-            plat_path = os.path.join(path, 'plat-%s' % sys.platform)
-            if os.path.exists(plat_path):
-                paths.append(plat_path)
-    else:
-        paths = [os.path.join(sys.real_prefix, 'lib', 'python'+sys.version[:3])]
-        hardcoded_relative_dirs = paths[:] # for the special 'darwin' case below
-        lib64_path = os.path.join(sys.real_prefix, 'lib64', 'python'+sys.version[:3])
-        if os.path.exists(lib64_path):
-            paths.append(lib64_path)
-        # This is hardcoded in the Python executable, but relative to sys.prefix:
-        plat_path = os.path.join(sys.real_prefix, 'lib', 'python'+sys.version[:3],
-                                 'plat-%s' % sys.platform)
-        if os.path.exists(plat_path):
-            paths.append(plat_path)
-    # This is hardcoded in the Python executable, but
-    # relative to sys.prefix, so we have to fix up:
-    for path in list(paths):
-        tk_dir = os.path.join(path, 'lib-tk')
-        if os.path.exists(tk_dir):
-            paths.append(tk_dir)
-
-    # These are hardcoded in the Apple's Python executable,
-    # but relative to sys.prefix, so we have to fix them up:
-    if sys.platform == 'darwin':
-        hardcoded_paths = [os.path.join(relative_dir, module)
-                           for relative_dir in hardcoded_relative_dirs
-                           for module in ('plat-darwin', 'plat-mac', 'plat-mac/lib-scriptpackages')]
-
-        for path in hardcoded_paths:
-            if os.path.exists(path):
-                paths.append(path)
-
-    sys.path.extend(paths)
-
-def force_global_eggs_after_local_site_packages():
-    """
-    Force easy_installed eggs in the global environment to get placed
-    in sys.path after all packages inside the virtualenv.  This
-    maintains the "least surprise" result that packages in the
-    virtualenv always mask global packages, never the other way
-    around.
-    
-    """
-    egginsert = getattr(sys, '__egginsert', 0)
-    for i, path in enumerate(sys.path):
-        if i > egginsert and path.startswith(sys.prefix):
-            egginsert = i
-    sys.__egginsert = egginsert + 1
-    
-def virtual_addsitepackages(known_paths):
-    force_global_eggs_after_local_site_packages()
-    return addsitepackages(known_paths, sys_prefix=sys.real_prefix)
-
-def fixclasspath():
-    """Adjust the special classpath sys.path entries for Jython. These
-    entries should follow the base virtualenv lib directories.
-    """
-    paths = []
-    classpaths = []
-    for path in sys.path:
-        if path == '__classpath__' or path.startswith('__pyclasspath__'):
-            classpaths.append(path)
-        else:
-            paths.append(path)
-    sys.path = paths
-    sys.path.extend(classpaths)
-
-def execusercustomize():
-    """Run custom user specific code, if available."""
-    try:
-        import usercustomize
-    except ImportError:
-        pass
-
-
-def main():
-    global ENABLE_USER_SITE
-    virtual_install_main_packages()
-    abs__file__()
-    paths_in_sys = removeduppaths()
-    if (os.name == "posix" and sys.path and
-        os.path.basename(sys.path[-1]) == "Modules"):
-        addbuilddir()
-    if _is_jython:
-        fixclasspath()
-    GLOBAL_SITE_PACKAGES = not os.path.exists(os.path.join(os.path.dirname(__file__), 'no-global-site-packages.txt'))
-    if not GLOBAL_SITE_PACKAGES:
-        ENABLE_USER_SITE = False
-    if ENABLE_USER_SITE is None:
-        ENABLE_USER_SITE = check_enableusersite()
-    paths_in_sys = addsitepackages(paths_in_sys)
-    paths_in_sys = addusersitepackages(paths_in_sys)
-    if GLOBAL_SITE_PACKAGES:
-        paths_in_sys = virtual_addsitepackages(paths_in_sys)
-    if sys.platform == 'os2emx':
-        setBEGINLIBPATH()
-    setquit()
-    setcopyright()
-    sethelper()
-    aliasmbcs()
-    setencoding()
-    execsitecustomize()
-    if ENABLE_USER_SITE:
-        execusercustomize()
-    # Remove sys.setdefaultencoding() so that users cannot change the
-    # encoding after initialization.  The test for presence is needed when
-    # this module is run as a script, because this code is executed twice.
-    if hasattr(sys, "setdefaultencoding"):
-        del sys.setdefaultencoding
-
-main()
-
-def _script():
-    help = """\
-    %s [--user-base] [--user-site]
-
-    Without arguments print some useful information
-    With arguments print the value of USER_BASE and/or USER_SITE separated
-    by '%s'.
-
-    Exit codes with --user-base or --user-site:
-      0 - user site directory is enabled
-      1 - user site directory is disabled by user
-      2 - uses site directory is disabled by super user
-          or for security reasons
-     >2 - unknown error
-    """
-    args = sys.argv[1:]
-    if not args:
-        print("sys.path = [")
-        for dir in sys.path:
-            print("    %r," % (dir,))
-        print("]")
-        def exists(path):
-            if os.path.isdir(path):
-                return "exists"
-            else:
-                return "doesn't exist"
-        print("USER_BASE: %r (%s)" % (USER_BASE, exists(USER_BASE)))
-        print("USER_SITE: %r (%s)" % (USER_SITE, exists(USER_BASE)))
-        print("ENABLE_USER_SITE: %r" %  ENABLE_USER_SITE)
-        sys.exit(0)
-
-    buffer = []
-    if '--user-base' in args:
-        buffer.append(USER_BASE)
-    if '--user-site' in args:
-        buffer.append(USER_SITE)
-
-    if buffer:
-        print(os.pathsep.join(buffer))
-        if ENABLE_USER_SITE:
-            sys.exit(0)
-        elif ENABLE_USER_SITE is False:
-            sys.exit(1)
-        elif ENABLE_USER_SITE is None:
-            sys.exit(2)
-        else:
-            sys.exit(3)
-    else:
-        import textwrap
-        print(textwrap.dedent(help % (sys.argv[0], os.pathsep)))
-        sys.exit(10)
-
-if __name__ == '__main__':
-    _script()
deleted file mode 100644
index 654fb50f8765368b176ba349d0e6680191396fa5..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ab93ac40c1a10b297096dbea53c8520c3308683f
GIT binary patch
literal 390582
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%0APCbk;zcckCo1l~DlTDbNwr
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