diff --git a/.gitignore b/.gitignore
index 209f28978cb8149188f0736c1fe2bc6068c5f439..5215248460e0b7504c481e6b3277e02c57a47033 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 trac-to-gitlab.phar
+vendor/
\ No newline at end of file
diff --git a/README.md b/README.md
index 4b2a4f22527edec3b83d8a970d3a634c9659a65e..0e04c3fd9fba1287ed52be69c8a737f21437654e 100644
--- a/README.md
+++ b/README.md
@@ -52,6 +52,7 @@ mv trac-to-gitlab.phar trac-to-gitlab
 
 ```bash
 git clone https://github.com/Dachaz/trac-to-gitlab.git
+composer install
 php migrate.php
 ```
 
diff --git a/vendor/autoload.php b/vendor/autoload.php
deleted file mode 100644
index 8ed83b85312c25edf0eacdac50272dcb59002579..0000000000000000000000000000000000000000
--- a/vendor/autoload.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-// autoload.php @generated by Composer
-
-require_once __DIR__ . '/composer' . '/autoload_real.php';
-
-return ComposerAutoloaderInit4e05c6dd8305906e12a17b68780a023a::getLoader();
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
deleted file mode 100644
index 4e05d3b158348d499092a409f7beec47328946da..0000000000000000000000000000000000000000
--- a/vendor/composer/ClassLoader.php
+++ /dev/null
@@ -1,413 +0,0 @@
-<?php
-
-/*
- * This file is part of Composer.
- *
- * (c) Nils Adermann <naderman@naderman.de>
- *     Jordi Boggiano <j.boggiano@seld.be>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Composer\Autoload;
-
-/**
- * ClassLoader implements a PSR-0 class loader
- *
- * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
- *
- *     $loader = new \Composer\Autoload\ClassLoader();
- *
- *     // register classes with namespaces
- *     $loader->add('Symfony\Component', __DIR__.'/component');
- *     $loader->add('Symfony',           __DIR__.'/framework');
- *
- *     // activate the autoloader
- *     $loader->register();
- *
- *     // to enable searching the include path (eg. for PEAR packages)
- *     $loader->setUseIncludePath(true);
- *
- * In this example, if you try to use a class in the Symfony\Component
- * namespace or one of its children (Symfony\Component\Console for instance),
- * the autoloader will first look for the class under the component/
- * directory, and it will then fallback to the framework/ directory if not
- * found before giving up.
- *
- * This class is loosely based on the Symfony UniversalClassLoader.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-class ClassLoader
-{
-    // PSR-4
-    private $prefixLengthsPsr4 = array();
-    private $prefixDirsPsr4 = array();
-    private $fallbackDirsPsr4 = array();
-
-    // PSR-0
-    private $prefixesPsr0 = array();
-    private $fallbackDirsPsr0 = array();
-
-    private $useIncludePath = false;
-    private $classMap = array();
-
-    private $classMapAuthoritative = false;
-
-    public function getPrefixes()
-    {
-        if (!empty($this->prefixesPsr0)) {
-            return call_user_func_array('array_merge', $this->prefixesPsr0);
-        }
-
-        return array();
-    }
-
-    public function getPrefixesPsr4()
-    {
-        return $this->prefixDirsPsr4;
-    }
-
-    public function getFallbackDirs()
-    {
-        return $this->fallbackDirsPsr0;
-    }
-
-    public function getFallbackDirsPsr4()
-    {
-        return $this->fallbackDirsPsr4;
-    }
-
-    public function getClassMap()
-    {
-        return $this->classMap;
-    }
-
-    /**
-     * @param array $classMap Class to filename map
-     */
-    public function addClassMap(array $classMap)
-    {
-        if ($this->classMap) {
-            $this->classMap = array_merge($this->classMap, $classMap);
-        } else {
-            $this->classMap = $classMap;
-        }
-    }
-
-    /**
-     * Registers a set of PSR-0 directories for a given prefix, either
-     * appending or prepending to the ones previously set for this prefix.
-     *
-     * @param string       $prefix  The prefix
-     * @param array|string $paths   The PSR-0 root directories
-     * @param bool         $prepend Whether to prepend the directories
-     */
-    public function add($prefix, $paths, $prepend = false)
-    {
-        if (!$prefix) {
-            if ($prepend) {
-                $this->fallbackDirsPsr0 = array_merge(
-                    (array) $paths,
-                    $this->fallbackDirsPsr0
-                );
-            } else {
-                $this->fallbackDirsPsr0 = array_merge(
-                    $this->fallbackDirsPsr0,
-                    (array) $paths
-                );
-            }
-
-            return;
-        }
-
-        $first = $prefix[0];
-        if (!isset($this->prefixesPsr0[$first][$prefix])) {
-            $this->prefixesPsr0[$first][$prefix] = (array) $paths;
-
-            return;
-        }
-        if ($prepend) {
-            $this->prefixesPsr0[$first][$prefix] = array_merge(
-                (array) $paths,
-                $this->prefixesPsr0[$first][$prefix]
-            );
-        } else {
-            $this->prefixesPsr0[$first][$prefix] = array_merge(
-                $this->prefixesPsr0[$first][$prefix],
-                (array) $paths
-            );
-        }
-    }
-
-    /**
-     * Registers a set of PSR-4 directories for a given namespace, either
-     * appending or prepending to the ones previously set for this namespace.
-     *
-     * @param string       $prefix  The prefix/namespace, with trailing '\\'
-     * @param array|string $paths   The PSR-0 base directories
-     * @param bool         $prepend Whether to prepend the directories
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function addPsr4($prefix, $paths, $prepend = false)
-    {
-        if (!$prefix) {
-            // Register directories for the root namespace.
-            if ($prepend) {
-                $this->fallbackDirsPsr4 = array_merge(
-                    (array) $paths,
-                    $this->fallbackDirsPsr4
-                );
-            } else {
-                $this->fallbackDirsPsr4 = array_merge(
-                    $this->fallbackDirsPsr4,
-                    (array) $paths
-                );
-            }
-        } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
-            // Register directories for a new namespace.
-            $length = strlen($prefix);
-            if ('\\' !== $prefix[$length - 1]) {
-                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
-            }
-            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
-            $this->prefixDirsPsr4[$prefix] = (array) $paths;
-        } elseif ($prepend) {
-            // Prepend directories for an already registered namespace.
-            $this->prefixDirsPsr4[$prefix] = array_merge(
-                (array) $paths,
-                $this->prefixDirsPsr4[$prefix]
-            );
-        } else {
-            // Append directories for an already registered namespace.
-            $this->prefixDirsPsr4[$prefix] = array_merge(
-                $this->prefixDirsPsr4[$prefix],
-                (array) $paths
-            );
-        }
-    }
-
-    /**
-     * Registers a set of PSR-0 directories for a given prefix,
-     * replacing any others previously set for this prefix.
-     *
-     * @param string       $prefix The prefix
-     * @param array|string $paths  The PSR-0 base directories
-     */
-    public function set($prefix, $paths)
-    {
-        if (!$prefix) {
-            $this->fallbackDirsPsr0 = (array) $paths;
-        } else {
-            $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
-        }
-    }
-
-    /**
-     * Registers a set of PSR-4 directories for a given namespace,
-     * replacing any others previously set for this namespace.
-     *
-     * @param string       $prefix The prefix/namespace, with trailing '\\'
-     * @param array|string $paths  The PSR-4 base directories
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setPsr4($prefix, $paths)
-    {
-        if (!$prefix) {
-            $this->fallbackDirsPsr4 = (array) $paths;
-        } else {
-            $length = strlen($prefix);
-            if ('\\' !== $prefix[$length - 1]) {
-                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
-            }
-            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
-            $this->prefixDirsPsr4[$prefix] = (array) $paths;
-        }
-    }
-
-    /**
-     * Turns on searching the include path for class files.
-     *
-     * @param bool $useIncludePath
-     */
-    public function setUseIncludePath($useIncludePath)
-    {
-        $this->useIncludePath = $useIncludePath;
-    }
-
-    /**
-     * Can be used to check if the autoloader uses the include path to check
-     * for classes.
-     *
-     * @return bool
-     */
-    public function getUseIncludePath()
-    {
-        return $this->useIncludePath;
-    }
-
-    /**
-     * Turns off searching the prefix and fallback directories for classes
-     * that have not been registered with the class map.
-     *
-     * @param bool $classMapAuthoritative
-     */
-    public function setClassMapAuthoritative($classMapAuthoritative)
-    {
-        $this->classMapAuthoritative = $classMapAuthoritative;
-    }
-
-    /**
-     * Should class lookup fail if not found in the current class map?
-     *
-     * @return bool
-     */
-    public function isClassMapAuthoritative()
-    {
-        return $this->classMapAuthoritative;
-    }
-
-    /**
-     * Registers this instance as an autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-    }
-
-    /**
-     * Unregisters this instance as an autoloader.
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param  string    $class The name of the class
-     * @return bool|null True if loaded, null otherwise
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->findFile($class)) {
-            includeFile($file);
-
-            return true;
-        }
-    }
-
-    /**
-     * Finds the path to the file where the class is defined.
-     *
-     * @param string $class The name of the class
-     *
-     * @return string|false The path if found, false otherwise
-     */
-    public function findFile($class)
-    {
-        // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
-        if ('\\' == $class[0]) {
-            $class = substr($class, 1);
-        }
-
-        // class map lookup
-        if (isset($this->classMap[$class])) {
-            return $this->classMap[$class];
-        }
-        if ($this->classMapAuthoritative) {
-            return false;
-        }
-
-        $file = $this->findFileWithExtension($class, '.php');
-
-        // Search for Hack files if we are running on HHVM
-        if ($file === null && defined('HHVM_VERSION')) {
-            $file = $this->findFileWithExtension($class, '.hh');
-        }
-
-        if ($file === null) {
-            // Remember that this class does not exist.
-            return $this->classMap[$class] = false;
-        }
-
-        return $file;
-    }
-
-    private function findFileWithExtension($class, $ext)
-    {
-        // PSR-4 lookup
-        $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
-
-        $first = $class[0];
-        if (isset($this->prefixLengthsPsr4[$first])) {
-            foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
-                if (0 === strpos($class, $prefix)) {
-                    foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
-                        if (is_file($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
-                            return $file;
-                        }
-                    }
-                }
-            }
-        }
-
-        // PSR-4 fallback dirs
-        foreach ($this->fallbackDirsPsr4 as $dir) {
-            if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
-                return $file;
-            }
-        }
-
-        // PSR-0 lookup
-        if (false !== $pos = strrpos($class, '\\')) {
-            // namespaced class name
-            $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
-                . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
-        } else {
-            // PEAR-like class name
-            $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
-        }
-
-        if (isset($this->prefixesPsr0[$first])) {
-            foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
-                if (0 === strpos($class, $prefix)) {
-                    foreach ($dirs as $dir) {
-                        if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
-                            return $file;
-                        }
-                    }
-                }
-            }
-        }
-
-        // PSR-0 fallback dirs
-        foreach ($this->fallbackDirsPsr0 as $dir) {
-            if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
-                return $file;
-            }
-        }
-
-        // PSR-0 include paths.
-        if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
-            return $file;
-        }
-    }
-}
-
-/**
- * Scope isolated include.
- *
- * Prevents access to $this/self from included files.
- */
-function includeFile($file)
-{
-    include $file;
-}
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
deleted file mode 100644
index 7a91153b0d8ea10bc693176a81d8a9eb96883a76..0000000000000000000000000000000000000000
--- a/vendor/composer/autoload_classmap.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-// autoload_classmap.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-);
diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php
deleted file mode 100644
index cc9f58dae859fa3b7437016be49625804c5e63d8..0000000000000000000000000000000000000000
--- a/vendor/composer/autoload_namespaces.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-// autoload_namespaces.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    'Ulrichsg\\' => array($vendorDir . '/ulrichsg/getopt-php/src'),
-    'JsonRPC' => array($vendorDir . '/fguillot/json-rpc/src'),
-    'Gitlab\\' => array($vendorDir . '/m4tthumphrey/php-gitlab-api/lib'),
-    'Buzz' => array($vendorDir . '/kriswallsmith/buzz/lib'),
-);
diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php
deleted file mode 100644
index 87066a84811cc281786208ada596e6ac93b1683e..0000000000000000000000000000000000000000
--- a/vendor/composer/autoload_psr4.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-// autoload_psr4.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    'Trac2GitLab\\' => array($baseDir . '/src'),
-);
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
deleted file mode 100644
index b2593467a398f27a5e4915f6e51c66a63dfb0b0c..0000000000000000000000000000000000000000
--- a/vendor/composer/autoload_real.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-// autoload_real.php @generated by Composer
-
-class ComposerAutoloaderInit4e05c6dd8305906e12a17b68780a023a
-{
-    private static $loader;
-
-    public static function loadClassLoader($class)
-    {
-        if ('Composer\Autoload\ClassLoader' === $class) {
-            require __DIR__ . '/ClassLoader.php';
-        }
-    }
-
-    public static function getLoader()
-    {
-        if (null !== self::$loader) {
-            return self::$loader;
-        }
-
-        spl_autoload_register(array('ComposerAutoloaderInit4e05c6dd8305906e12a17b68780a023a', 'loadClassLoader'), true, true);
-        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit4e05c6dd8305906e12a17b68780a023a', 'loadClassLoader'));
-
-        $map = require __DIR__ . '/autoload_namespaces.php';
-        foreach ($map as $namespace => $path) {
-            $loader->set($namespace, $path);
-        }
-
-        $map = require __DIR__ . '/autoload_psr4.php';
-        foreach ($map as $namespace => $path) {
-            $loader->setPsr4($namespace, $path);
-        }
-
-        $classMap = require __DIR__ . '/autoload_classmap.php';
-        if ($classMap) {
-            $loader->addClassMap($classMap);
-        }
-
-        $loader->register(true);
-
-        return $loader;
-    }
-}
-
-function composerRequire4e05c6dd8305906e12a17b68780a023a($file)
-{
-    require $file;
-}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
deleted file mode 100644
index 6a54bfa8e95c5b34ddeef65bebc50281beeb6c98..0000000000000000000000000000000000000000
--- a/vendor/composer/installed.json
+++ /dev/null
@@ -1,189 +0,0 @@
-[
-    {
-        "name": "kriswallsmith/buzz",
-        "version": "v0.15",
-        "version_normalized": "0.15.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/kriswallsmith/Buzz.git",
-            "reference": "d4041666c3ffb379af02a92dabe81c904b35fab8"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/kriswallsmith/Buzz/zipball/d4041666c3ffb379af02a92dabe81c904b35fab8",
-            "reference": "d4041666c3ffb379af02a92dabe81c904b35fab8",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "3.7.*"
-        },
-        "suggest": {
-            "ext-curl": "*"
-        },
-        "time": "2015-06-25 17:26:56",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Buzz": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Kris Wallsmith",
-                "email": "kris.wallsmith@gmail.com",
-                "homepage": "http://kriswallsmith.net/"
-            }
-        ],
-        "description": "Lightweight HTTP client",
-        "homepage": "https://github.com/kriswallsmith/Buzz",
-        "keywords": [
-            "curl",
-            "http client"
-        ]
-    },
-    {
-        "name": "fguillot/json-rpc",
-        "version": "v1.0.0",
-        "version_normalized": "1.0.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/fguillot/JsonRPC.git",
-            "reference": "5a11f1414780a200f09b78d20ab72b5cee4faa95"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/fguillot/JsonRPC/zipball/5a11f1414780a200f09b78d20ab72b5cee4faa95",
-            "reference": "5a11f1414780a200f09b78d20ab72b5cee4faa95",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0"
-        },
-        "time": "2015-07-01 19:50:31",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "JsonRPC": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Frédéric Guillot"
-            }
-        ],
-        "description": "Simple Json-RPC client/server library that just works",
-        "homepage": "https://github.com/fguillot/JsonRPC"
-    },
-    {
-        "name": "ulrichsg/getopt-php",
-        "version": "2.3.0",
-        "version_normalized": "2.3.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/ulrichsg/getopt-php.git",
-            "reference": "a51554a16e206a6642bf1a0d7d1e4378ec2ba980"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/ulrichsg/getopt-php/zipball/a51554a16e206a6642bf1a0d7d1e4378ec2ba980",
-            "reference": "a51554a16e206a6642bf1a0d7d1e4378ec2ba980",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "3.7.*"
-        },
-        "time": "2015-03-28 14:09:20",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Ulrichsg\\": "src"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Ulrich Schmidt-Goertz",
-                "email": "ulrich@schmidt-goertz.de"
-            }
-        ],
-        "description": "Command line arguments parser for PHP 5.3",
-        "homepage": "http://ulrichsg.github.io/getopt-php"
-    },
-    {
-        "name": "m4tthumphrey/php-gitlab-api",
-        "version": "7.13.0",
-        "version_normalized": "7.13.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/m4tthumphrey/php-gitlab-api.git",
-            "reference": "65dc67929188f26e2059e99deb56e9c5608232b5"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/m4tthumphrey/php-gitlab-api/zipball/65dc67929188f26e2059e99deb56e9c5608232b5",
-            "reference": "65dc67929188f26e2059e99deb56e9c5608232b5",
-            "shasum": ""
-        },
-        "require": {
-            "ext-curl": "*",
-            "kriswallsmith/buzz": ">=0.7",
-            "php": ">=5.3.2"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.5"
-        },
-        "time": "2015-07-28 11:27:19",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Gitlab\\": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Thibault Duplessis",
-                "email": "thibault.duplessis@gmail.com",
-                "homepage": "http://ornicar.github.com"
-            },
-            {
-                "name": "KnpLabs Team",
-                "homepage": "http://knplabs.com"
-            },
-            {
-                "name": "Matt Humphrey",
-                "homepage": "http://m4tt.io"
-            }
-        ],
-        "description": "GitLab API client",
-        "homepage": "https://github.com/m4tthumphrey/php-gitlab-api",
-        "keywords": [
-            "api",
-            "gitlab"
-        ]
-    }
-]
diff --git a/vendor/fguillot/json-rpc/.gitignore b/vendor/fguillot/json-rpc/.gitignore
deleted file mode 100644
index b0ef0680a8432525da61556b1cd30302bc02b074..0000000000000000000000000000000000000000
--- a/vendor/fguillot/json-rpc/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-vendor/
\ No newline at end of file
diff --git a/vendor/fguillot/json-rpc/.travis.yml b/vendor/fguillot/json-rpc/.travis.yml
deleted file mode 100644
index 00b2b5bbb95a42b65295b002a48d770efa3f0766..0000000000000000000000000000000000000000
--- a/vendor/fguillot/json-rpc/.travis.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-language: php
-
-php:
-  - 7.0
-  - 5.6
-  - 5.5
-  - 5.4
-  - 5.3
-
-matrix:
-  fast_finish: true
-  allow_failures:
-    - php: 7.0
-
-before_script:
-  - composer dump-autoload
-
-script:
-  - phpunit
\ No newline at end of file
diff --git a/vendor/fguillot/json-rpc/LICENSE b/vendor/fguillot/json-rpc/LICENSE
deleted file mode 100644
index 6a362bc1634d70a5f97ff1a4005192ef1ef5a06b..0000000000000000000000000000000000000000
--- a/vendor/fguillot/json-rpc/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Frederic Guillot
-
-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.
diff --git a/vendor/fguillot/json-rpc/README.markdown b/vendor/fguillot/json-rpc/README.markdown
deleted file mode 100644
index 933cc870f9181fc3a68963617bb7ab1cc2ceb932..0000000000000000000000000000000000000000
--- a/vendor/fguillot/json-rpc/README.markdown
+++ /dev/null
@@ -1,364 +0,0 @@
-JsonRPC PHP Client and Server
-=============================
-
-A simple Json-RPC client/server that just works.
-
-[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/fguillot/JsonRPC/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/fguillot/JsonRPC/?branch=master)
-
-[![Build Status](https://travis-ci.org/fguillot/JsonRPC.svg?branch=master)](https://travis-ci.org/fguillot/JsonRPC)
-
-Features
---------
-
-- JSON-RPC 2.0 protocol only
-- The server support batch requests and notifications
-- Authentication and IP based client restrictions
-- Minimalist: there is only 2 files
-- Fully unit tested
-- Requirements: PHP >= 5.3
-- License: MIT
-
-Author
-------
-
-Frédéric Guillot
-
-Installation with Composer
---------------------------
-
-```bash
-composer require fguillot/json-rpc @stable
-```
-
-Examples
---------
-
-### Server
-
-Callback binding:
-
-```php
-<?php
-
-use JsonRPC\Server;
-
-$server = new Server;
-
-// Procedures registration
-
-$server->register('addition', function ($a, $b) {
-    return $a + $b;
-});
-
-$server->register('random', function ($start, $end) {
-    return mt_rand($start, $end);
-});
-
-// Return the response to the client
-echo $server->execute();
-
-?>
-```
-
-Class/Method binding:
-
-```php
-<?php
-
-use JsonRPC\Server;
-
-class Api
-{
-    public function doSomething($arg1, $arg2 = 3)
-    {
-        return $arg1 + $arg2;
-    }
-}
-
-$server = new Server;
-
-// Bind the method Api::doSomething() to the procedure myProcedure
-$server->bind('myProcedure', 'Api', 'doSomething');
-
-// Use a class instance instead of the class name
-$server->bind('mySecondProcedure', new Api, 'doSomething');
-
-// The procedure and the method are the same
-$server->bind('doSomething', 'Api');
-
-// Attach the class, client will be able to call directly Api::doSomething()
-$server->attach(new Api);
-
-echo $server->execute();
-
-?>
-```
-
-Before callback:
-
-Before each procedure execution, a custom method can be called.
-
-This method receive the following arguments: `$username, $password, $class, $method`.
-
-```php
-<?php
-
-use JsonRPC\Server;
-use JsonRPC\AuthenticationFailure;
-
-class Api
-{
-    public function beforeProcedure($username, $password, $class, $method)
-    {
-        if ($login_condition_failed) {
-            throw new AuthenticationFailure('Wrong credentials!');
-        }
-    }
-
-    public function addition($a, $b)
-    {
-        return $a + $b;
-    }
-}
-
-$server = new Server;
-$server->authentication(['myuser' => 'mypassword']);
-
-// Register the before callback
-$server->before('beforeProcedure');
-
-$server->attach(new Api);
-
-echo $server->execute();
-
-?>
-```
-
-You can use this method to implements a custom authentication system or anything else.
-If you would like to reject the authentication, you can throw the exception `JsonRPC\AuthenticationFailure`.
-
-### Client
-
-Example with positional parameters:
-
-```php
-<?php
-
-use JsonRPC\Client;
-
-$client = new Client('http://localhost/server.php');
-$result = $client->execute('addition', [3, 5]);
-
-var_dump($result);
-```
-
-Example with named arguments:
-
-```php
-<?php
-
-use JsonRPC\Client;
-
-$client = new Client('http://localhost/server.php');
-$result = $client->execute('random', ['end' => 10, 'start' => 1]);
-
-var_dump($result);
-```
-
-Arguments are called in the right order.
-
-Examples with shortcut methods:
-
-```php
-<?php
-
-use JsonRPC\Client;
-
-$client = new Client('http://localhost/server.php');
-$result = $client->random(50, 100);
-
-var_dump($result);
-```
-
-The example above use positional arguments for the request and this one use named arguments:
-
-```php
-$result = $client->random(['end' => 10, 'start' => 1]);
-```
-
-### Client batch requests
-
-Call several procedures in a single HTTP request:
-
-```php
-<?php
-
-use JsonRPC\Client;
-
-$client = new Client('http://localhost/server.php');
-
-$results = $client->batch()
-                  ->foo(['arg1' => 'bar'])
-                  ->random(1, 100)
-                  ->add(4, 3)
-                  ->execute('add', [2, 5])
-                  ->send();
-
-print_r($results);
-```
-
-All results are stored at the same position of the call.
-
-### Client exceptions
-
-- `BadFunctionCallException`: Procedure not found on the server
-- `InvalidArgumentException`: Wrong procedure arguments
-- `JsonRPC\AccessDeniedException`: Access denied
-- `JsonRPC\ConnectionFailureException`: Connection failure
-- `JsonRPC\ServerErrorException`: Internal server error
-- `RuntimeException`: Protocol error
-
-### Enable client debugging
-
-You can enable the debug to see the JSON request and response:
-
-```php
-<?php
-
-use JsonRPC\Client;
-
-$client = new Client('http://localhost/server.php');
-$client->debug = true;
-```
-
-The debug output is sent to the PHP's system logger.
-You can configure the log destination in your `php.ini`.
-
-Output example:
-
-```json
-==> Request:
-{
-    "jsonrpc": "2.0",
-    "method": "removeCategory",
-    "id": 486782327,
-    "params": [
-        1
-    ]
-}
-==> Response:
-{
-    "jsonrpc": "2.0",
-    "id": 486782327,
-    "result": true
-}
-```
-
-### IP based client restrictions
-
-The server can allow only some IP adresses:
-
-```php
-<?php
-
-use JsonRPC\Server;
-
-$server = new Server;
-
-// IP client restrictions
-$server->allowHosts(['192.168.0.1', '127.0.0.1']);
-
-// Procedures registration
-
-[...]
-
-// Return the response to the client
-echo $server->execute();
-```
-
-If the client is blocked, you got a 403 Forbidden HTTP response.
-
-### HTTP Basic Authentication
-
-If you use HTTPS, you can allow client by using a username/password.
-
-```php
-<?php
-
-use JsonRPC\Server;
-
-$server = new Server;
-
-// List of users to allow
-$server->authentication(['user1' => 'password1', 'user2' => 'password2']);
-
-// Procedures registration
-
-[...]
-
-// Return the response to the client
-echo $server->execute();
-```
-
-On the client, set credentials like that:
-
-```php
-<?php
-
-use JsonRPC\Client;
-
-$client = new Client('http://localhost/server.php');
-$client->authentication('user1', 'password1');
-```
-
-If the authentication failed, the client throw a RuntimeException.
-
-Using an alternative authentication header:
-
-```php
-
-use JsonRPC\Server;
-
-$server = new Server;
-$server->setAuthenticationHeader('X-Authentication');
-$server->authentication(['myusername' => 'mypassword']);
-```
-
-The example above will use the HTTP header `X-Authentication` instead of the standard `Authorization: Basic [BASE64_CREDENTIALS]`.
-The username/password values need be encoded in base64: `base64_encode('username:password')`.
-
-### Exceptions
-
-If you want to send an error to the client you can throw an exception.
-You should configure which exceptions should be relayed to the client first:
-
-```php
-<?php
-
-use JsonRPC\Server;
-class MyException extends RuntimeException {};
-
-$server = new Server;
-
-// Exceptions that should be relayed to the client, if they occur
-$server->attachException('MyException');
-
-// Procedures registration
-
-[...]
-
-// Return the response to the client
-echo $server->execute();
-```
-
-Then you can throw that exception inside your procedure:
-
-```
-throw new MyException("An error occured", 123);
-```
-
-To relay all exceptions regardless of type, leave out the exception class name:
-
-```
-$server->attachException();
-```
diff --git a/vendor/fguillot/json-rpc/composer.json b/vendor/fguillot/json-rpc/composer.json
deleted file mode 100644
index 48593b5808e032e4e4b7633a8a60650d96facdc6..0000000000000000000000000000000000000000
--- a/vendor/fguillot/json-rpc/composer.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-    "name": "fguillot/json-rpc",
-    "description": "Simple Json-RPC client/server library that just works",
-    "homepage": "https://github.com/fguillot/JsonRPC",
-    "type": "library",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Frédéric Guillot"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.0"
-    },
-    "autoload": {
-        "psr-0": {"JsonRPC": "src/"}
-    }
-}
diff --git a/vendor/fguillot/json-rpc/phpunit.xml b/vendor/fguillot/json-rpc/phpunit.xml
deleted file mode 100644
index 1eee422bbee7e4180ba56597dd493a47161dd83a..0000000000000000000000000000000000000000
--- a/vendor/fguillot/json-rpc/phpunit.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<phpunit bootstrap="./vendor/autoload.php" stopOnError="true" stopOnFailure="true" colors="true">
-    <testsuites>
-        <testsuite name="JsonRPC">
-            <directory>tests</directory>
-        </testsuite>
-    </testsuites>
-</phpunit>
diff --git a/vendor/fguillot/json-rpc/src/JsonRPC/Client.php b/vendor/fguillot/json-rpc/src/JsonRPC/Client.php
deleted file mode 100644
index ac7ff436d6ce8abf40e72cb6744fa5d510829dea..0000000000000000000000000000000000000000
--- a/vendor/fguillot/json-rpc/src/JsonRPC/Client.php
+++ /dev/null
@@ -1,382 +0,0 @@
-<?php
-
-namespace JsonRPC;
-
-use Exception;
-use RuntimeException;
-use BadFunctionCallException;
-use InvalidArgumentException;
-
-class AccessDeniedException extends Exception {};
-class ConnectionFailureException extends Exception {};
-class ServerErrorException extends Exception {};
-
-/**
- * JsonRPC client class
- *
- * @package JsonRPC
- * @author  Frederic Guillot
- */
-class Client
-{
-    /**
-     * URL of the server
-     *
-     * @access private
-     * @var string
-     */
-    private $url;
-
-    /**
-     * If the only argument passed to a function is an array
-     * assume it contains named arguments
-     *
-     * @access public
-     * @var boolean
-     */
-    public $named_arguments = true;
-
-    /**
-     * HTTP client timeout
-     *
-     * @access private
-     * @var integer
-     */
-    private $timeout;
-
-    /**
-     * Username for authentication
-     *
-     * @access private
-     * @var string
-     */
-    private $username;
-
-    /**
-     * Password for authentication
-     *
-     * @access private
-     * @var string
-     */
-    private $password;
-
-    /**
-     * True for a batch request
-     *
-     * @access public
-     * @var boolean
-     */
-    public $is_batch = false;
-
-    /**
-     * Batch payload
-     *
-     * @access public
-     * @var array
-     */
-    public $batch = array();
-
-    /**
-     * Enable debug output to the php error log
-     *
-     * @access public
-     * @var boolean
-     */
-    public $debug = false;
-
-    /**
-     * Default HTTP headers to send to the server
-     *
-     * @access private
-     * @var array
-     */
-    private $headers = array(
-        'User-Agent: JSON-RPC PHP Client <https://github.com/fguillot/JsonRPC>',
-        'Content-Type: application/json',
-        'Accept: application/json',
-        'Connection: close',
-    );
-
-    /**
-     * SSL certificates verification
-     *
-     * @access private
-     * @var boolean
-     */
-    public $ssl_verify_peer = true;
-
-    /**
-     * Constructor
-     *
-     * @access public
-     * @param  string    $url         Server URL
-     * @param  integer   $timeout     HTTP timeout
-     * @param  array     $headers     Custom HTTP headers
-     */
-    public function __construct($url, $timeout = 3, $headers = array())
-    {
-        $this->url = $url;
-        $this->timeout = $timeout;
-        $this->headers = array_merge($this->headers, $headers);
-    }
-
-    /**
-     * Automatic mapping of procedures
-     *
-     * @access public
-     * @param  string   $method   Procedure name
-     * @param  array    $params   Procedure arguments
-     * @return mixed
-     */
-    public function __call($method, array $params)
-    {
-        // Allow to pass an array and use named arguments
-        if ($this->named_arguments && count($params) === 1 && is_array($params[0])) {
-            $params = $params[0];
-        }
-
-        return $this->execute($method, $params);
-    }
-
-    /**
-     * Set authentication parameters
-     *
-     * @access public
-     * @param  string   $username   Username
-     * @param  string   $password   Password
-     * @return Client
-     */
-    public function authentication($username, $password)
-    {
-        $this->username = $username;
-        $this->password = $password;
-
-        return $this;
-    }
-
-    /**
-     * Start a batch request
-     *
-     * @access public
-     * @return Client
-     */
-    public function batch()
-    {
-        $this->is_batch = true;
-        $this->batch = array();
-
-        return $this;
-    }
-
-    /**
-     * Send a batch request
-     *
-     * @access public
-     * @return array
-     */
-    public function send()
-    {
-        $this->is_batch = false;
-
-        return $this->parseResponse(
-            $this->doRequest($this->batch)
-        );
-    }
-
-    /**
-     * Execute a procedure
-     *
-     * @access public
-     * @param  string   $procedure   Procedure name
-     * @param  array    $params      Procedure arguments
-     * @return mixed
-     */
-    public function execute($procedure, array $params = array())
-    {
-        if ($this->is_batch) {
-            $this->batch[] = $this->prepareRequest($procedure, $params);
-            return $this;
-        }
-
-        return $this->parseResponse(
-            $this->doRequest($this->prepareRequest($procedure, $params))
-        );
-    }
-
-    /**
-     * Prepare the payload
-     *
-     * @access public
-     * @param  string   $procedure   Procedure name
-     * @param  array    $params      Procedure arguments
-     * @return array
-     */
-    public function prepareRequest($procedure, array $params = array())
-    {
-        $payload = array(
-            'jsonrpc' => '2.0',
-            'method' => $procedure,
-            'id' => mt_rand()
-        );
-
-        if (! empty($params)) {
-            $payload['params'] = $params;
-        }
-
-        return $payload;
-    }
-
-    /**
-     * Parse the response and return the procedure result
-     *
-     * @access public
-     * @param  array     $payload
-     * @return mixed
-     */
-    public function parseResponse(array $payload)
-    {
-        if ($this->isBatchResponse($payload)) {
-            $results = array();
-
-            foreach ($payload as $response) {
-                $results[] = $this->getResult($response);
-            }
-
-            return $results;
-        }
-
-        return $this->getResult($payload);
-    }
-
-    /**
-     * Throw an exception according the RPC error
-     *
-     * @access public
-     * @param  array   $error
-     * @throws BadFunctionCallException
-     * @throws InvalidArgumentException
-     * @throws RuntimeException
-     */
-    public function handleRpcErrors(array $error)
-    {
-        switch ($error['code']) {
-            case -32601:
-                throw new BadFunctionCallException('Procedure not found: '. $error['message']);
-            case -32602:
-                throw new InvalidArgumentException('Invalid arguments: '. $error['message']);
-            default:
-                throw new RuntimeException('Invalid request/response: '. $error['message'], $error['code']);
-        }
-    }
-
-    /**
-     * Throw an exception according the HTTP response
-     *
-     * @access public
-     * @param  array   $headers
-     * @throws AccessDeniedException
-     * @throws ServerErrorException
-     */
-    public function handleHttpErrors(array $headers)
-    {
-        $exceptions = array(
-            '401' => 'JsonRPC\AccessDeniedException',
-            '403' => 'JsonRPC\AccessDeniedException',
-            '404' => 'JsonRPC\ConnectionFailureException',
-            '500' => 'JsonRPC\ServerErrorException',
-        );
-
-        foreach ($headers as $header) {
-            foreach ($exceptions as $code => $exception) {
-                if (strpos($header, 'HTTP/1.0 '.$code) !== false || strpos($header, 'HTTP/1.1 '.$code) !== false) {
-                    throw new $exception('Response: '.$header);
-                }
-            }
-        }
-    }
-
-    /**
-     * Do the HTTP request
-     *
-     * @access private
-     * @param  array   $payload
-     * @return array
-     */
-    private function doRequest(array $payload)
-    {
-        $stream = @fopen(trim($this->url), 'r', false, $this->getContext($payload));
-
-        if (! is_resource($stream)) {
-            throw new ConnectionFailureException('Unable to establish a connection');
-        }
-
-        $metadata = stream_get_meta_data($stream);
-        $this->handleHttpErrors($metadata['wrapper_data']);
-
-        $response = json_decode(stream_get_contents($stream), true);
-
-        if ($this->debug) {
-            error_log('==> Request: '.PHP_EOL.json_encode($payload, JSON_PRETTY_PRINT));
-            error_log('==> Response: '.PHP_EOL.json_encode($response, JSON_PRETTY_PRINT));
-        }
-
-        return is_array($response) ? $response : array();
-    }
-
-    /**
-     * Prepare stream context
-     *
-     * @access private
-     * @param  array   $payload
-     * @return resource
-     */
-    private function getContext(array $payload)
-    {
-        $headers = $this->headers;
-
-        if (! empty($this->username) && ! empty($this->password)) {
-            $headers[] = 'Authorization: Basic '.base64_encode($this->username.':'.$this->password);
-        }
-
-        return stream_context_create(array(
-            'http' => array(
-                'method' => 'POST',
-                'protocol_version' => 1.1,
-                'timeout' => $this->timeout,
-                'max_redirects' => 2,
-                'header' => implode("\r\n", $headers),
-                'content' => json_encode($payload),
-                'verify_peer' => $this->ssl_verify_peer,
-                'ignore_errors' => true,
-            )
-        ));
-    }
-
-    /**
-     * Return true if we have a batch response
-     *
-     * @access public
-     * @param  array    $payload
-     * @return boolean
-     */
-    private function isBatchResponse(array $payload)
-    {
-        return array_keys($payload) === range(0, count($payload) - 1);
-    }
-
-    /**
-     * Get a RPC call result
-     *
-     * @access private
-     * @param  array    $payload
-     * @return mixed
-     */
-    private function getResult(array $payload)
-    {
-        if (isset($payload['error']['code'])) {
-            $this->handleRpcErrors($payload['error']);
-        }
-
-        return isset($payload['result']) ? $payload['result'] : null;
-    }
-}
diff --git a/vendor/fguillot/json-rpc/src/JsonRPC/Server.php b/vendor/fguillot/json-rpc/src/JsonRPC/Server.php
deleted file mode 100644
index 355d90646c15862909780a24b36b596a87d05009..0000000000000000000000000000000000000000
--- a/vendor/fguillot/json-rpc/src/JsonRPC/Server.php
+++ /dev/null
@@ -1,630 +0,0 @@
-<?php
-
-namespace JsonRPC;
-
-use Closure;
-use BadFunctionCallException;
-use Exception;
-use InvalidArgumentException;
-use LogicException;
-use ReflectionFunction;
-use ReflectionMethod;
-
-class InvalidJsonRpcFormat extends Exception {};
-class InvalidJsonFormat extends Exception {};
-class AuthenticationFailure extends Exception {};
-
-/**
- * JsonRPC server class
- *
- * @package JsonRPC
- * @author  Frederic Guillot
- */
-class Server
-{
-    /**
-     * Data received from the client
-     *
-     * @access private
-     * @var array
-     */
-    private $payload = array();
-
-    /**
-     * List of procedures
-     *
-     * @access private
-     * @var array
-     */
-    private $callbacks = array();
-
-    /**
-     * List of classes
-     *
-     * @access private
-     * @var array
-     */
-    private $classes = array();
-
-    /**
-     * List of instances
-     *
-     * @access private
-     * @var array
-     */
-    private $instances = array();
-
-    /**
-     * List of exception classes that should be relayed to client
-     *
-     * @access private
-     * @var array
-     */
-    private $exceptions = array();
-
-    /**
-     * Method name to execute before the procedure
-     *
-     * @access private
-     * @var string
-     */
-    private $before = '';
-
-    /**
-     * Username
-     *
-     * @access private
-     * @var string
-     */
-    private $username = '';
-
-    /**
-     * Password
-     *
-     * @access private
-     * @var string
-     */
-    private $password = '';
-
-    /**
-     * Constructor
-     *
-     * @access public
-     * @param  string    $request
-     */
-    public function __construct($request = '')
-    {
-        if ($request !== '') {
-            $this->payload = json_decode($request, true);
-        }
-        else {
-            $this->payload = json_decode(file_get_contents('php://input'), true);
-        }
-    }
-
-    /**
-     * Set a payload
-     *
-     * @access public
-     * @param  array   $payload
-     * @return Server
-     */
-    public function setPayload(array $payload)
-    {
-        $this->payload = $payload;
-    }
-
-    /**
-     * Define alternative authentication header
-     *
-     * @access public
-     * @param  string   $header   Header name
-     * @return Server
-     */
-    public function setAuthenticationHeader($header)
-    {
-        if (! empty($header)) {
-
-            $header = 'HTTP_'.str_replace('-', '_', strtoupper($header));
-
-            if (isset($_SERVER[$header])) {
-                list($this->username, $this->password) = explode(':', @base64_decode($_SERVER[$header]));
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Get username
-     *
-     * @access public
-     * @return string
-     */
-    public function getUsername()
-    {
-        return $this->username ?: @$_SERVER['PHP_AUTH_USER'];
-    }
-
-    /**
-     * Get password
-     *
-     * @access public
-     * @return string
-     */
-    public function getPassword()
-    {
-        return $this->password ?: @$_SERVER['PHP_AUTH_PW'];
-    }
-
-    /**
-     * Send authentication failure response
-     *
-     * @access public
-     */
-    public function sendAuthenticationFailureResponse()
-    {
-        header('WWW-Authenticate: Basic realm="JsonRPC"');
-        header('Content-Type: application/json');
-        header('HTTP/1.0 401 Unauthorized');
-        echo '{"error": "Authentication failed"}';
-        exit;
-    }
-
-    /**
-     * Send forbidden response
-     *
-     * @access public
-     */
-    public function sendForbiddenResponse()
-    {
-        header('Content-Type: application/json');
-        header('HTTP/1.0 403 Forbidden');
-        echo '{"error": "Access Forbidden"}';
-        exit;
-    }
-
-    /**
-     * IP based client restrictions
-     *
-     * Return an HTTP error 403 if the client is not allowed
-     *
-     * @access public
-     * @param  array   $hosts   List of hosts
-     */
-    public function allowHosts(array $hosts)
-    {
-        if (! in_array($_SERVER['REMOTE_ADDR'], $hosts)) {
-            $this->sendForbiddenResponse();
-        }
-    }
-
-    /**
-     * HTTP Basic authentication
-     *
-     * Return an HTTP error 401 if the client is not allowed
-     *
-     * @access public
-     * @param  array   $users   Map of username/password
-     * @return Server
-     */
-    public function authentication(array $users)
-    {
-        if (! isset($users[$this->getUsername()]) || $users[$this->getUsername()] !== $this->getPassword()) {
-            $this->sendAuthenticationFailureResponse();
-        }
-
-        return $this;
-    }
-
-    /**
-     * Register a new procedure
-     *
-     * @access public
-     * @param  string   $procedure       Procedure name
-     * @param  closure  $callback        Callback
-     * @return Server
-     */
-    public function register($procedure, Closure $callback)
-    {
-        $this->callbacks[$procedure] = $callback;
-        return $this;
-    }
-
-    /**
-     * Bind a procedure to a class
-     *
-     * @access public
-     * @param  string   $procedure    Procedure name
-     * @param  mixed    $class        Class name or instance
-     * @param  string   $method       Procedure name
-     * @return Server
-     */
-    public function bind($procedure, $class, $method = '')
-    {
-        if ($method === '') {
-            $method = $procedure;
-        }
-
-        $this->classes[$procedure] = array($class, $method);
-        return $this;
-    }
-
-    /**
-     * Bind a class instance
-     *
-     * @access public
-     * @param  mixed   $instance    Instance name
-     * @return Server
-     */
-    public function attach($instance)
-    {
-        $this->instances[] = $instance;
-        return $this;
-    }
-
-    /**
-     * Bind an exception
-     * If this exception occurs it is relayed to the client as JSON-RPC error
-     *
-     * @access public
-     * @param  mixed   $exception    Exception class. Defaults to all.
-     * @return Server
-     */
-    public function attachException($exception = 'Exception')
-    {
-        $this->exceptions[] = $exception;
-        return $this;
-    }
-
-    /**
-     * Attach a method that will be called before the procedure
-     *
-     * @access public
-     * @param  string  $before
-     * @return Server
-     */
-    public function before($before)
-    {
-        $this->before = $before;
-        return $this;
-    }
-
-    /**
-     * Return the response to the client
-     *
-     * @access public
-     * @param  array    $data      Data to send to the client
-     * @param  array    $payload   Incoming data
-     * @return string
-     */
-    public function getResponse(array $data, array $payload = array())
-    {
-        if (! array_key_exists('id', $payload)) {
-            return '';
-        }
-
-        $response = array(
-            'jsonrpc' => '2.0',
-            'id' => $payload['id']
-        );
-
-        $response = array_merge($response, $data);
-
-        @header('Content-Type: application/json');
-        return json_encode($response);
-    }
-
-    /**
-     * Parse the payload and test if the parsed JSON is ok
-     *
-     * @access private
-     */
-    private function checkJsonFormat()
-    {
-        if (! is_array($this->payload)) {
-            throw new InvalidJsonFormat('Malformed payload');
-        }
-    }
-
-    /**
-     * Test if all required JSON-RPC parameters are here
-     *
-     * @access private
-     */
-    private function checkRpcFormat()
-    {
-        if (! isset($this->payload['jsonrpc']) ||
-            ! isset($this->payload['method']) ||
-            ! is_string($this->payload['method']) ||
-            $this->payload['jsonrpc'] !== '2.0' ||
-            (isset($this->payload['params']) && ! is_array($this->payload['params']))) {
-
-            throw new InvalidJsonRpcFormat('Invalid JSON RPC payload');
-        }
-    }
-
-    /**
-     * Return true if we have a batch request
-     *
-     * @access public
-     * @return boolean
-     */
-    private function isBatchRequest()
-    {
-        return array_keys($this->payload) === range(0, count($this->payload) - 1);
-    }
-
-    /**
-     * Handle batch request
-     *
-     * @access private
-     * @return string
-     */
-    private function handleBatchRequest()
-    {
-        $responses = array();
-
-        foreach ($this->payload as $payload) {
-
-            if (! is_array($payload)) {
-
-                $responses[] = $this->getResponse(array(
-                    'error' => array(
-                        'code' => -32600,
-                        'message' => 'Invalid Request'
-                    )),
-                    array('id' => null)
-                );
-            }
-            else {
-
-                $server = clone($this);
-                $server->setPayload($payload);
-                $response = $server->execute();
-
-                if (! empty($response)) {
-                    $responses[] = $response;
-                }
-            }
-        }
-
-        return empty($responses) ? '' : '['.implode(',', $responses).']';
-    }
-
-    /**
-     * Parse incoming requests
-     *
-     * @access public
-     * @return string
-     */
-    public function execute()
-    {
-        try {
-
-            $this->checkJsonFormat();
-
-            if ($this->isBatchRequest()){
-                return $this->handleBatchRequest();
-            }
-
-            $this->checkRpcFormat();
-
-            $result = $this->executeProcedure(
-                $this->payload['method'],
-                empty($this->payload['params']) ? array() : $this->payload['params']
-            );
-
-            return $this->getResponse(array('result' => $result), $this->payload);
-        }
-        catch (InvalidJsonFormat $e) {
-
-            return $this->getResponse(array(
-                'error' => array(
-                    'code' => -32700,
-                    'message' => 'Parse error'
-                )),
-                array('id' => null)
-            );
-        }
-        catch (InvalidJsonRpcFormat $e) {
-
-            return $this->getResponse(array(
-                'error' => array(
-                    'code' => -32600,
-                    'message' => 'Invalid Request'
-                )),
-                array('id' => null)
-            );
-        }
-        catch (BadFunctionCallException $e) {
-
-            return $this->getResponse(array(
-                'error' => array(
-                    'code' => -32601,
-                    'message' => 'Method not found'
-                )),
-                $this->payload
-            );
-        }
-        catch (InvalidArgumentException $e) {
-
-            return $this->getResponse(array(
-                'error' => array(
-                    'code' => -32602,
-                    'message' => 'Invalid params'
-                )),
-                $this->payload
-            );
-        }
-        catch (AuthenticationFailure $e) {
-            $this->sendAuthenticationFailureResponse();
-        }
-        catch (Exception $e) {
-
-            foreach ($this->exceptions as $class) {
-                if ($e instanceof $class) {
-                    return $this->getResponse(array(
-                        'error' => array(
-                            'code' => $e->getCode(),
-                            'message' => $e->getMessage()
-                        )),
-                        $this->payload
-                    );
-                }
-            }
-
-            throw $e;
-        }
-    }
-
-    /**
-     * Execute the procedure
-     *
-     * @access public
-     * @param  string   $procedure    Procedure name
-     * @param  array    $params       Procedure params
-     * @return mixed
-     */
-    public function executeProcedure($procedure, array $params = array())
-    {
-        if (isset($this->callbacks[$procedure])) {
-            return $this->executeCallback($this->callbacks[$procedure], $params);
-        }
-        else if (isset($this->classes[$procedure]) && method_exists($this->classes[$procedure][0], $this->classes[$procedure][1])) {
-            return $this->executeMethod($this->classes[$procedure][0], $this->classes[$procedure][1], $params);
-        }
-
-        foreach ($this->instances as $instance) {
-            if (method_exists($instance, $procedure)) {
-                return $this->executeMethod($instance, $procedure, $params);
-            }
-        }
-
-        throw new BadFunctionCallException('Unable to find the procedure');
-    }
-
-    /**
-     * Execute a callback
-     *
-     * @access public
-     * @param  Closure   $callback     Callback
-     * @param  array     $params       Procedure params
-     * @return mixed
-     */
-    public function executeCallback(Closure $callback, $params)
-    {
-        $reflection = new ReflectionFunction($callback);
-
-        $arguments = $this->getArguments(
-            $params,
-            $reflection->getParameters(),
-            $reflection->getNumberOfRequiredParameters(),
-            $reflection->getNumberOfParameters()
-        );
-
-        return $reflection->invokeArgs($arguments);
-    }
-
-    /**
-     * Execute a method
-     *
-     * @access public
-     * @param  mixed     $class        Class name or instance
-     * @param  string    $method       Method name
-     * @param  array     $params       Procedure params
-     * @return mixed
-     */
-    public function executeMethod($class, $method, $params)
-    {
-        $instance = is_string($class) ? new $class : $class;
-
-        // Execute before action
-        if (! empty($this->before) && method_exists($instance, $this->before)) {
-            $instance->{$this->before}($this->getUsername(), $this->getPassword(), get_class($class), $method);
-        }
-
-        $reflection = new ReflectionMethod($class, $method);
-
-        $arguments = $this->getArguments(
-            $params,
-            $reflection->getParameters(),
-            $reflection->getNumberOfRequiredParameters(),
-            $reflection->getNumberOfParameters()
-        );
-
-        return $reflection->invokeArgs($instance, $arguments);
-    }
-
-    /**
-     * Get procedure arguments
-     *
-     * @access public
-     * @param  array    $request_params       Incoming arguments
-     * @param  array    $method_params        Procedure arguments
-     * @param  integer  $nb_required_params   Number of required parameters
-     * @param  integer  $nb_max_params        Maximum number of parameters
-     * @return array
-     */
-    public function getArguments(array $request_params, array $method_params, $nb_required_params, $nb_max_params)
-    {
-        $nb_params = count($request_params);
-
-        if ($nb_params < $nb_required_params) {
-            throw new InvalidArgumentException('Wrong number of arguments');
-        }
-
-        if ($nb_params > $nb_max_params) {
-            throw new InvalidArgumentException('Too many arguments');
-        }
-
-        if ($this->isPositionalArguments($request_params, $method_params)) {
-            return $request_params;
-        }
-
-        return $this->getNamedArguments($request_params, $method_params);
-    }
-
-    /**
-     * Return true if we have positional parametes
-     *
-     * @access public
-     * @param  array    $request_params      Incoming arguments
-     * @param  array    $method_params       Procedure arguments
-     * @return bool
-     */
-    public function isPositionalArguments(array $request_params, array $method_params)
-    {
-        return array_keys($request_params) === range(0, count($request_params) - 1);
-    }
-
-    /**
-     * Get named arguments
-     *
-     * @access public
-     * @param  array    $request_params      Incoming arguments
-     * @param  array    $method_params       Procedure arguments
-     * @return array
-     */
-    public function getNamedArguments(array $request_params, array $method_params)
-    {
-        $params = array();
-
-        foreach ($method_params as $p) {
-
-            $name = $p->getName();
-
-            if (isset($request_params[$name])) {
-                $params[$name] = $request_params[$name];
-            }
-            else if ($p->isDefaultValueAvailable()) {
-                $params[$name] = $p->getDefaultValue();
-            }
-            else {
-                throw new InvalidArgumentException('Missing argument: '.$name);
-            }
-        }
-
-        return $params;
-    }
-}
diff --git a/vendor/fguillot/json-rpc/tests/ClientTest.php b/vendor/fguillot/json-rpc/tests/ClientTest.php
deleted file mode 100644
index a6ad5f6d70c7096420dc05c592bd723c1bd7fff7..0000000000000000000000000000000000000000
--- a/vendor/fguillot/json-rpc/tests/ClientTest.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-use JsonRPC\Client;
-
-class ClientTest extends PHPUnit_Framework_TestCase
-{
-    public function testParseReponse()
-    {
-        $client = new Client('http://localhost/');
-
-        $this->assertEquals(
-            -19,
-            $client->parseResponse(json_decode('{"jsonrpc": "2.0", "result": -19, "id": 1}', true))
-        );
-
-        $this->assertEquals(
-            null,
-            $client->parseResponse(json_decode('{"jsonrpc": "2.0", "id": 1}', true))
-        );
-    }
-
-    /**
-     * @expectedException BadFunctionCallException
-     */
-    public function testBadProcedure()
-    {
-        $client = new Client('http://localhost/');
-        $client->parseResponse(json_decode('{"jsonrpc": "2.0", "error": {"code": -32601, "message": "Method not found"}, "id": "1"}', true));
-    }
-
-    /**
-     * @expectedException InvalidArgumentException
-     */
-    public function testInvalidArgs()
-    {
-        $client = new Client('http://localhost/');
-        $client->parseResponse(json_decode('{"jsonrpc": "2.0", "error": {"code": -32602, "message": "Invalid params"}, "id": "1"}', true));
-    }
-
-    /**
-     * @expectedException RuntimeException
-     */
-    public function testInvalidRequest()
-    {
-        $client = new Client('http://localhost/');
-        $client->parseResponse(json_decode('{"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null}', true));
-    }
-
-    /**
-     * @expectedException RuntimeException
-     */
-    public function testParseError()
-    {
-        $client = new Client('http://localhost/');
-        $client->parseResponse(json_decode('{"jsonrpc": "2.0", "error": {"code": -32700, "message": "Parse error"}, "id": null}', true));
-    }
-
-    /**
-     * @expectedException JsonRPC\ServerErrorException
-     */
-    public function testServerError()
-    {
-        $client = new Client('http://localhost/');
-        $client->handleHttpErrors(array('HTTP/1.0 301 Moved Permantenly', 'Connection: close', 'HTTP/1.1 500 Internal Server Error'));
-    }
-
-    /**
-     * @expectedException JsonRPC\ConnectionFailureException
-     */
-    public function testBadUrl()
-    {
-        $client = new Client('http://something_not_found/', 1);
-        $client->execute('plop');
-    }
-
-    /**
-     * @expectedException JsonRPC\ConnectionFailureException
-     */
-    public function test404()
-    {
-        $client = new Client('http://localhost/');
-        $client->handleHttpErrors(array('HTTP/1.1 404 Not Found'));
-    }
-
-    /**
-     * @expectedException JsonRPC\AccessDeniedException
-     */
-    public function testAccessForbiddenError()
-    {
-        $client = new Client('http://localhost/');
-        $client->handleHttpErrors(array('HTTP/1.0 301 Moved Permantenly', 'Connection: close', 'HTTP/1.1 403 Forbidden'));
-    }
-
-    /**
-     * @expectedException JsonRPC\AccessDeniedException
-     */
-    public function testAccessNotAllowedError()
-    {
-        $client = new Client('http://localhost/');
-        $client->handleHttpErrors(array('HTTP/1.0 301 Moved Permantenly', 'Connection: close', 'HTTP/1.0 401 Unauthorized'));
-    }
-
-    public function testPrepareRequest()
-    {
-        $client = new Client('http://localhost/');
-
-        $payload = $client->prepareRequest('myProcedure');
-        $this->assertNotEmpty($payload);
-        $this->assertArrayHasKey('jsonrpc', $payload);
-        $this->assertEquals('2.0', $payload['jsonrpc']);
-        $this->assertArrayHasKey('method', $payload);
-        $this->assertEquals('myProcedure', $payload['method']);
-        $this->assertArrayHasKey('id', $payload);
-        $this->assertArrayNotHasKey('params', $payload);
-
-        $payload = $client->prepareRequest('myProcedure', array('p1' => 3));
-        $this->assertNotEmpty($payload);
-        $this->assertArrayHasKey('jsonrpc', $payload);
-        $this->assertEquals('2.0', $payload['jsonrpc']);
-        $this->assertArrayHasKey('method', $payload);
-        $this->assertEquals('myProcedure', $payload['method']);
-        $this->assertArrayHasKey('id', $payload);
-        $this->assertArrayHasKey('params', $payload);
-        $this->assertEquals(array('p1' => 3), $payload['params']);
-    }
-
-    public function testBatchRequest()
-    {
-        $client = new Client('http://localhost/');
-
-        $batch = $client->batch();
-
-        $this->assertInstanceOf('JsonRpc\Client', $batch);
-        $this->assertTrue($client->is_batch);
-
-        $batch->random(1, 30);
-        $batch->add(3, 5);
-        $batch->execute('foo', array('p1' => 42, 'p3' => 3));
-
-        $this->assertNotEmpty($client->batch);
-        $this->assertEquals(3, count($client->batch));
-
-        $this->assertEquals('random', $client->batch[0]['method']);
-        $this->assertEquals('add', $client->batch[1]['method']);
-        $this->assertEquals('foo', $client->batch[2]['method']);
-
-        $this->assertEquals(array(1, 30), $client->batch[0]['params']);
-        $this->assertEquals(array(3, 5), $client->batch[1]['params']);
-        $this->assertEquals(array('p1' => 42, 'p3' => 3), $client->batch[2]['params']);
-
-        $batch = $client->batch();
-
-        $this->assertInstanceOf('JsonRpc\Client', $batch);
-        $this->assertTrue($client->is_batch);
-        $this->assertEmpty($client->batch);
-    }
-}
diff --git a/vendor/fguillot/json-rpc/tests/ServerProcedureTest.php b/vendor/fguillot/json-rpc/tests/ServerProcedureTest.php
deleted file mode 100644
index 636b38355ce461b923dc2ae66f2fd8fd1d9a20e3..0000000000000000000000000000000000000000
--- a/vendor/fguillot/json-rpc/tests/ServerProcedureTest.php
+++ /dev/null
@@ -1,140 +0,0 @@
-<?php
-
-use JsonRPC\Server;
-
-class A
-{
-    public function getAll($p1, $p2, $p3 = 4)
-    {
-        return $p1 + $p2 + $p3;
-    }
-}
-
-class B
-{
-    public function getAll($p1)
-    {
-        return $p1 + 2;
-    }
-}
-
-class ServerProcedureTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException BadFunctionCallException
-     */
-    public function testProcedureNotFound()
-    {
-        $server = new Server;
-        $server->executeProcedure('a');
-    }
-
-    /**
-     * @expectedException BadFunctionCallException
-     */
-    public function testCallbackNotFound()
-    {
-        $server = new Server;
-        $server->register('b', function() {});
-        $server->executeProcedure('a');
-    }
-
-    /**
-     * @expectedException BadFunctionCallException
-     */
-    public function testClassNotFound()
-    {
-        $server = new Server;
-        $server->bind('getAllTasks', 'c', 'getAll');
-        $server->executeProcedure('getAllTasks');
-    }
-
-    /**
-     * @expectedException BadFunctionCallException
-     */
-    public function testMethodNotFound()
-    {
-        $server = new Server;
-        $server->bind('getAllTasks', 'A', 'getNothing');
-        $server->executeProcedure('getAllTasks');
-    }
-
-    public function testIsPositionalArguments()
-    {
-        $server = new Server;
-        $this->assertFalse($server->isPositionalArguments(
-            array('a' => 'b', 'c' => 'd'),
-            array('a' => 'b', 'c' => 'd')
-        ));
-
-        $server = new Server;
-        $this->assertTrue($server->isPositionalArguments(
-            array('a', 'b', 'c'),
-            array('a' => 'b', 'c' => 'd')
-        ));
-    }
-
-    public function testBindNamedArguments()
-    {
-        $server = new Server;
-        $server->bind('getAllA', 'A', 'getAll');
-        $server->bind('getAllB', 'B', 'getAll');
-        $server->bind('getAllC', new B, 'getAll');
-        $this->assertEquals(6, $server->executeProcedure('getAllA', array('p2' => 4, 'p1' => -2)));
-        $this->assertEquals(10, $server->executeProcedure('getAllA', array('p2' => 4, 'p3' => 8, 'p1' => -2)));
-        $this->assertEquals(6, $server->executeProcedure('getAllB', array('p1' => 4)));
-        $this->assertEquals(5, $server->executeProcedure('getAllC', array('p1' => 3)));
-    }
-
-    public function testBindPositionalArguments()
-    {
-        $server = new Server;
-        $server->bind('getAllA', 'A', 'getAll');
-        $server->bind('getAllB', 'B', 'getAll');
-        $this->assertEquals(6, $server->executeProcedure('getAllA', array(4, -2)));
-        $this->assertEquals(2, $server->executeProcedure('getAllA', array(4, 0, -2)));
-        $this->assertEquals(4, $server->executeProcedure('getAllB', array(2)));
-    }
-
-    public function testRegisterNamedArguments()
-    {
-        $server = new Server;
-        $server->register('getAllA', function($p1, $p2, $p3 = 4) {
-            return $p1 + $p2 + $p3;
-        });
-
-        $this->assertEquals(6, $server->executeProcedure('getAllA', array('p2' => 4, 'p1' => -2)));
-        $this->assertEquals(10, $server->executeProcedure('getAllA', array('p2' => 4, 'p3' => 8, 'p1' => -2)));
-    }
-
-    public function testRegisterPositionalArguments()
-    {
-        $server = new Server;
-        $server->register('getAllA', function($p1, $p2, $p3 = 4) {
-            return $p1 + $p2 + $p3;
-        });
-
-        $this->assertEquals(6, $server->executeProcedure('getAllA', array(4, -2)));
-        $this->assertEquals(2, $server->executeProcedure('getAllA', array(4, 0, -2)));
-    }
-
-    /**
-     * @expectedException InvalidArgumentException
-     */
-    public function testTooManyArguments()
-    {
-        $server = new Server;
-        $server->bind('getAllC', new B, 'getAll');
-        $server->executeProcedure('getAllC', array('p1' => 3, 'p2' => 5));
-    }
-
-    /**
-     * @expectedException InvalidArgumentException
-     */
-    public function testNotEnoughArguments()
-    {
-        $server = new Server;
-        $server->bind('getAllC', new B, 'getAll');
-        $server->executeProcedure('getAllC');
-    }
-}
diff --git a/vendor/fguillot/json-rpc/tests/ServerProtocolTest.php b/vendor/fguillot/json-rpc/tests/ServerProtocolTest.php
deleted file mode 100644
index 4f55dca505d2c4305079f60994e9813f60884f8e..0000000000000000000000000000000000000000
--- a/vendor/fguillot/json-rpc/tests/ServerProtocolTest.php
+++ /dev/null
@@ -1,231 +0,0 @@
-<?php
-
-use JsonRPC\Server;
-
-class C
-{
-    public function doSomething()
-    {
-        return 'something';
-    }
-}
-
-class ServerProtocolTest extends PHPUnit_Framework_TestCase
-{
-    public function testPositionalParameters()
-    {
-        $subtract = function($minuend, $subtrahend) {
-            return $minuend - $subtrahend;
-        };
-
-        $server = new Server('{"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1}');
-        $server->register('subtract', $subtract);
-
-        $this->assertEquals(
-            json_decode('{"jsonrpc": "2.0", "result": 19, "id": 1}', true),
-            json_decode($server->execute(), true)
-        );
-
-        $server = new Server('{"jsonrpc": "2.0", "method": "subtract", "params": [23, 42], "id": 1}');
-        $server->register('subtract', $subtract);
-
-        $this->assertEquals(
-            json_decode('{"jsonrpc": "2.0", "result": -19, "id": 1}', true),
-            json_decode($server->execute(), true)
-        );
-    }
-
-
-    public function testNamedParameters()
-    {
-        $subtract = function($minuend, $subtrahend) {
-            return $minuend - $subtrahend;
-        };
-
-        $server = new Server('{"jsonrpc": "2.0", "method": "subtract", "params": {"subtrahend": 23, "minuend": 42}, "id": 3}');
-        $server->register('subtract', $subtract);
-
-        $this->assertEquals(
-            json_decode('{"jsonrpc": "2.0", "result": 19, "id": 3}', true),
-            json_decode($server->execute(), true)
-        );
-
-        $server = new Server('{"jsonrpc": "2.0", "method": "subtract", "params": {"minuend": 42, "subtrahend": 23}, "id": 4}');
-        $server->register('subtract', $subtract);
-
-        $this->assertEquals(
-            json_decode('{"jsonrpc": "2.0", "result": 19, "id": 4}', true),
-            json_decode($server->execute(), true)
-        );
-    }
-
-
-    public function testNotification()
-    {
-        $update = function($p1, $p2, $p3, $p4, $p5) {};
-        $foobar = function() {};
-
-
-        $server = new Server('{"jsonrpc": "2.0", "method": "update", "params": [1,2,3,4,5]}');
-        $server->register('update', $update);
-        $server->register('foobar', $foobar);
-
-        $this->assertEquals('', $server->execute());
-
-
-        $server = new Server('{"jsonrpc": "2.0", "method": "foobar"}');
-        $server->register('update', $update);
-        $server->register('foobar', $foobar);
-
-        $this->assertEquals('', $server->execute());
-    }
-
-
-    public function testNoMethod()
-    {
-        $server = new Server('{"jsonrpc": "2.0", "method": "foobar", "id": "1"}');
-
-        $this->assertEquals(
-            json_decode('{"jsonrpc": "2.0", "error": {"code": -32601, "message": "Method not found"}, "id": "1"}', true),
-            json_decode($server->execute(), true)
-        );
-    }
-
-
-    public function testInvalidJson()
-    {
-        $server = new Server('{"jsonrpc": "2.0", "method": "foobar, "params": "bar", "baz]');
-
-        $this->assertEquals(
-            json_decode('{"jsonrpc": "2.0", "error": {"code": -32700, "message": "Parse error"}, "id": null}', true),
-            json_decode($server->execute(), true)
-        );
-    }
-
-
-    public function testInvalidRequest()
-    {
-        $server = new Server('{"jsonrpc": "2.0", "method": 1, "params": "bar"}');
-
-        $this->assertEquals(
-            json_decode('{"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null}', true),
-            json_decode($server->execute(), true)
-        );
-    }
-
-
-    public function testBatchInvalidJson()
-    {
-        $server = new Server('[
-          {"jsonrpc": "2.0", "method": "sum", "params": [1,2,4], "id": "1"},
-          {"jsonrpc": "2.0", "method"
-        ]');
-
-        $this->assertEquals(
-            json_decode('{"jsonrpc": "2.0", "error": {"code": -32700, "message": "Parse error"}, "id": null}', true),
-            json_decode($server->execute(), true)
-        );
-    }
-
-
-    public function testBatchEmptyArray()
-    {
-        $server = new Server('[]');
-
-        $this->assertEquals(
-            json_decode('{"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null}', true),
-            json_decode($server->execute(), true)
-        );
-    }
-
-
-    public function testBatchNotEmptyButInvalid()
-    {
-        $server = new Server('[1]');
-
-        $this->assertEquals(
-            json_decode('[{"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null}]', true),
-            json_decode($server->execute(), true)
-        );
-    }
-
-
-    public function testBatchInvalid()
-    {
-        $server = new Server('[1,2,3]');
-
-        $this->assertEquals(
-            json_decode('[
-                {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null},
-                {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null},
-                {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null}
-            ]', true),
-            json_decode($server->execute(), true)
-        );
-    }
-
-
-    public function testBatchOk()
-    {
-        $server = new Server('[
-            {"jsonrpc": "2.0", "method": "sum", "params": [1,2,4], "id": "1"},
-            {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
-            {"jsonrpc": "2.0", "method": "subtract", "params": [42,23], "id": "2"},
-            {"foo": "boo"},
-            {"jsonrpc": "2.0", "method": "foo.get", "params": {"name": "myself"}, "id": "5"},
-            {"jsonrpc": "2.0", "method": "get_data", "id": "9"},
-            {"jsonrpc": "2.0", "method": "doSomething", "id": 10},
-            {"jsonrpc": "2.0", "method": "doStuff", "id": 15}
-        ]');
-
-        $server->register('sum', function($a, $b, $c) {
-            return $a + $b + $c;
-        });
-
-        $server->register('subtract', function($minuend, $subtrahend) {
-            return $minuend - $subtrahend;
-        });
-
-        $server->register('get_data', function() {
-            return array('hello', 5);
-        });
-
-        $server->attach(new C);
-
-        $server->bind('doStuff', 'C', 'doSomething');
-
-        $response = $server->execute();
-
-        $this->assertEquals(
-            json_decode('[
-                {"jsonrpc": "2.0", "result": 7, "id": "1"},
-                {"jsonrpc": "2.0", "result": 19, "id": "2"},
-                {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null},
-                {"jsonrpc": "2.0", "error": {"code": -32601, "message": "Method not found"}, "id": "5"},
-                {"jsonrpc": "2.0", "result": ["hello", 5], "id": "9"},
-                {"jsonrpc": "2.0", "result": "something", "id": "10"},
-                {"jsonrpc": "2.0", "result": "something", "id": "15"}
-            ]', true),
-            json_decode($response, true)
-        );
-    }
-
-
-    public function testBatchNotifications()
-    {
-        $server = new Server('[
-            {"jsonrpc": "2.0", "method": "notify_sum", "params": [1,2,4]},
-            {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]}
-        ]');
-
-        $server->register('notify_sum', function($a, $b, $c) {
-
-        });
-
-        $server->register('notify_hello', function($id) {
-
-        });
-
-        $this->assertEquals('', $server->execute());
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/.gitignore b/vendor/kriswallsmith/buzz/.gitignore
deleted file mode 100644
index 36f67f4522475198ef760be0262cbd3c1df7142e..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-composer.lock
-composer.phar
-phpunit.xml
-vendor
diff --git a/vendor/kriswallsmith/buzz/.travis.yml b/vendor/kriswallsmith/buzz/.travis.yml
deleted file mode 100644
index 1bfa528e18f74c84f2cd447e1f79dffbe073d9e8..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/.travis.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-language: php
-
-php:
-    - 5.4
-    - 5.5
-
-env: TEST_SERVER="http://127.0.0.1:8080/server.php" TEST_PROXY="127.0.0.1:3128" PHP_FCGI_CHILDREN=10 PHP_FCGI_MAX_REQUESTS=10
-
-before_install:
-    - echo "" | sudo add-apt-repository ppa:nginx/stable > /dev/null 2>&1
-    - sudo apt-get -qq update
-    - sudo apt-get -qq install nginx squid
-    - sudo stop squid3
-    - curl --version
-
-before_script:
-    - sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf
-    - echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
-    - ~/.phpenv/versions/$(phpenv version-name)/sbin/php-fpm
-    - sudo nginx -p test -c etc/nginx.conf
-    - sudo squid3 -f test/etc/squid.conf
-    - composer self-update
-    - composer install --dev
-
-script: ./bin/phpunit
diff --git a/vendor/kriswallsmith/buzz/CHANGELOG.md b/vendor/kriswallsmith/buzz/CHANGELOG.md
deleted file mode 100644
index b931a01e7711cfa4ef7313723e05880e366f244a..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/CHANGELOG.md
+++ /dev/null
@@ -1,10 +0,0 @@
-## 0.15 (June 25, 2015)
-
- * Moved cookie jar implementation from `FileGetContents` client to a browser
-   listener
- * Added `DigestAuthListener`
-
-## 0.14 (June 2, 2015)
-
- * Changed default HTTP protocol version to 1.1
- * Added verify host control to `AbstractClient`
diff --git a/vendor/kriswallsmith/buzz/LICENSE b/vendor/kriswallsmith/buzz/LICENSE
deleted file mode 100644
index e234f8007a80c63ecd95faf6b52fedab2091a7e6..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2010-2011 Kris Wallsmith
-
-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.
diff --git a/vendor/kriswallsmith/buzz/README.md b/vendor/kriswallsmith/buzz/README.md
deleted file mode 100644
index 2cd6acfb7c59dd431006e5a3743726eeb28d9160..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-[![Build Status](https://secure.travis-ci.org/kriswallsmith/Buzz.png?branch=master)](http://travis-ci.org/kriswallsmith/Buzz)
-
-Buzz is a lightweight PHP 5.3 library for issuing HTTP requests.
-
-```php
-<?php
-
-$browser = new Buzz\Browser();
-$response = $browser->get('http://www.google.com');
-
-echo $browser->getLastRequest()."\n";
-echo $response;
-```
-
-You can also use the low-level HTTP classes directly.
-
-```php
-<?php
-
-$request = new Buzz\Message\Request('HEAD', '/', 'http://google.com');
-$response = new Buzz\Message\Response();
-
-$client = new Buzz\Client\FileGetContents();
-$client->send($request, $response);
-
-echo $request;
-echo $response;
-```
diff --git a/vendor/kriswallsmith/buzz/composer.json b/vendor/kriswallsmith/buzz/composer.json
deleted file mode 100644
index 725444fb675468532c0edc31b28509a7648e64fe..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/composer.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-    "name": "kriswallsmith/buzz",
-    "description": "Lightweight HTTP client",
-    "keywords": ["http client", "curl"],
-    "homepage": "https://github.com/kriswallsmith/Buzz",
-    "type": "library",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Kris Wallsmith",
-            "email": "kris.wallsmith@gmail.com",
-            "homepage": "http://kriswallsmith.net/"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.0"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "3.7.*"
-    },
-    "suggest": {
-        "ext-curl": "*"
-    },
-    "config": {
-        "bin-dir": "bin"
-    },
-    "autoload": {
-        "psr-0": {
-            "Buzz": "lib/"
-        }
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/examples/CookieListener.php b/vendor/kriswallsmith/buzz/examples/CookieListener.php
deleted file mode 100644
index be0635fa99ccec27370b1e4fc67a1f212549b03d..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/examples/CookieListener.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-require('../vendor/autoload.php');
-
-use Buzz\Browser;
-use Buzz\Client\Curl;
-use Buzz\Listener\CookieListener;
-
-$browser = new Browser();
-
-$client = new Curl();
-$client->setMaxRedirects(0);
-$browser->setClient($client);
-
-// Create CookieListener
-$listener = new CookieListener();
-$browser->addListener($listener);
-
-// This URL set two Cookies, k1=v1 and k2=v2
-$response = $browser->get('http://httpbin.org/cookies/set?k1=v1&k2=v2');
-
-// This URL will return the two set Cookies
-$response = $browser->get('http://httpbin.org/cookies');
-echo $response;
-
-// Should output
-/*
-{
-  "cookies": {
-    "k1": "v1", 
-    "k2": "v2"
-  }
-}
-*/
-
-// The Cookies are able to be retrieved and set using getCookies and setCookies on the Listener.
-print_r($listener->getCookies());
\ No newline at end of file
diff --git a/vendor/kriswallsmith/buzz/examples/DigestAuthListener.php b/vendor/kriswallsmith/buzz/examples/DigestAuthListener.php
deleted file mode 100644
index 5eb9843b792bc3130d4d18c5760b547aac456ecd..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/examples/DigestAuthListener.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-require('../vendor/autoload.php');
-
-use Buzz\Browser;
-use Buzz\Client\Curl;
-use Buzz\Listener\DigestAuthListener;
-
-$username = 'user1';
-$password = 'user1';
-
-//
-// This URL will Authenticate usernames user1 through user9, password is the same as the username.
-//
-$url = 'http://test.webdav.org/auth-digest/';
-
-// Create Curl Client
-$curl = new Curl();
-
-$browser = new Browser();
-$browser->setClient($curl);
-
-// Create DigestAuthListener
-$browser->addListener(new DigestAuthListener($username, $password));
-
-//
-// This URL will Authenticate any username and password that matches those in the URL.
-// It requires the Browser/Client to respond with the same Cookie in order to Authenticate.
-//
-//	$url = 'http://httpbin.org/digest-auth/auth-int/' . $username . '/' . $password;
-
-$response = $browser->get($url);
-echo $response;
-
-$statusCode = $response->getStatusCode();
-if($statusCode == 401) {
-    $response = $browser->get($url);
-}
-
-echo $response;
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Browser.php b/vendor/kriswallsmith/buzz/lib/Buzz/Browser.php
deleted file mode 100644
index dbc47ec89ee765a87335b263ed277039360fc3f0..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Browser.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-
-namespace Buzz;
-
-use Buzz\Client\ClientInterface;
-use Buzz\Client\FileGetContents;
-use Buzz\Listener\ListenerChain;
-use Buzz\Listener\ListenerInterface;
-use Buzz\Message\Factory\Factory;
-use Buzz\Message\Factory\FactoryInterface;
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-use Buzz\Util\Url;
-
-class Browser
-{
-    private $client;
-    private $factory;
-    private $listener;
-    private $lastRequest;
-    private $lastResponse;
-
-    public function __construct(ClientInterface $client = null, FactoryInterface $factory = null)
-    {
-        $this->client = $client ?: new FileGetContents();
-        $this->factory = $factory ?: new Factory();
-    }
-
-    public function get($url, $headers = array())
-    {
-        return $this->call($url, RequestInterface::METHOD_GET, $headers);
-    }
-
-    public function post($url, $headers = array(), $content = '')
-    {
-        return $this->call($url, RequestInterface::METHOD_POST, $headers, $content);
-    }
-
-    public function head($url, $headers = array())
-    {
-        return $this->call($url, RequestInterface::METHOD_HEAD, $headers);
-    }
-
-    public function patch($url, $headers = array(), $content = '')
-    {
-        return $this->call($url, RequestInterface::METHOD_PATCH, $headers, $content);
-    }
-
-    public function put($url, $headers = array(), $content = '')
-    {
-        return $this->call($url, RequestInterface::METHOD_PUT, $headers, $content);
-    }
-
-    public function delete($url, $headers = array(), $content = '')
-    {
-        return $this->call($url, RequestInterface::METHOD_DELETE, $headers, $content);
-    }
-
-    /**
-     * Sends a request.
-     *
-     * @param string $url     The URL to call
-     * @param string $method  The request method to use
-     * @param array  $headers An array of request headers
-     * @param string $content The request content
-     *
-     * @return MessageInterface The response object
-     */
-    public function call($url, $method, $headers = array(), $content = '')
-    {
-        $request = $this->factory->createRequest($method);
-
-        if (!$url instanceof Url) {
-            $url = new Url($url);
-        }
-
-        $url->applyToRequest($request);
-
-        $request->addHeaders($headers);
-        $request->setContent($content);
-
-        return $this->send($request);
-    }
-
-    /**
-     * Sends a form request.
-     *
-     * @param string $url     The URL to submit to
-     * @param array  $fields  An array of fields
-     * @param string $method  The request method to use
-     * @param array  $headers An array of request headers
-     *
-     * @return MessageInterface The response object
-     */
-    public function submit($url, array $fields, $method = RequestInterface::METHOD_POST, $headers = array())
-    {
-        $request = $this->factory->createFormRequest();
-
-        if (!$url instanceof Url) {
-            $url = new Url($url);
-        }
-
-        $url->applyToRequest($request);
-
-        $request->addHeaders($headers);
-        $request->setMethod($method);
-        $request->setFields($fields);
-
-        return $this->send($request);
-    }
-
-    /**
-     * Sends a request.
-     *
-     * @param RequestInterface $request  A request object
-     * @param MessageInterface $response A response object
-     *
-     * @return MessageInterface The response
-     */
-    public function send(RequestInterface $request, MessageInterface $response = null)
-    {
-        if (null === $response) {
-            $response = $this->factory->createResponse();
-        }
-
-        if ($this->listener) {
-            $this->listener->preSend($request);
-        }
-
-        $this->client->send($request, $response);
-
-        $this->lastRequest = $request;
-        $this->lastResponse = $response;
-
-        if ($this->listener) {
-            $this->listener->postSend($request, $response);
-        }
-
-        return $response;
-    }
-
-    public function getLastRequest()
-    {
-        return $this->lastRequest;
-    }
-
-    public function getLastResponse()
-    {
-        return $this->lastResponse;
-    }
-
-    public function setClient(ClientInterface $client)
-    {
-        $this->client = $client;
-    }
-
-    public function getClient()
-    {
-        return $this->client;
-    }
-
-    public function setMessageFactory(FactoryInterface $factory)
-    {
-        $this->factory = $factory;
-    }
-
-    public function getMessageFactory()
-    {
-        return $this->factory;
-    }
-
-    public function setListener(ListenerInterface $listener)
-    {
-        $this->listener = $listener;
-    }
-
-    public function getListener()
-    {
-        return $this->listener;
-    }
-
-    public function addListener(ListenerInterface $listener)
-    {
-        if (!$this->listener) {
-            $this->listener = $listener;
-        } elseif ($this->listener instanceof ListenerChain) {
-            $this->listener->addListener($listener);
-        } else {
-            $this->listener = new ListenerChain(array(
-                $this->listener,
-                $listener,
-            ));
-        }
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Client/AbstractClient.php b/vendor/kriswallsmith/buzz/lib/Buzz/Client/AbstractClient.php
deleted file mode 100644
index f7c188ca198f8cc22c3f73c6ae510eef3a67fdf9..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Client/AbstractClient.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-namespace Buzz\Client;
-
-abstract class AbstractClient implements ClientInterface
-{
-    protected $ignoreErrors = true;
-    protected $maxRedirects = 5;
-    protected $timeout = 5;
-    protected $verifyPeer = true;
-    protected $verifyHost = 2;
-    protected $proxy;
-
-    public function setIgnoreErrors($ignoreErrors)
-    {
-        $this->ignoreErrors = $ignoreErrors;
-    }
-
-    public function getIgnoreErrors()
-    {
-        return $this->ignoreErrors;
-    }
-
-    public function setMaxRedirects($maxRedirects)
-    {
-        $this->maxRedirects = $maxRedirects;
-    }
-
-    public function getMaxRedirects()
-    {
-        return $this->maxRedirects;
-    }
-
-    public function setTimeout($timeout)
-    {
-        $this->timeout = $timeout;
-    }
-
-    public function getTimeout()
-    {
-        return $this->timeout;
-    }
-
-    public function setVerifyPeer($verifyPeer)
-    {
-        $this->verifyPeer = $verifyPeer;
-    }
-
-    public function getVerifyPeer()
-    {
-        return $this->verifyPeer;
-    }
-
-    public function getVerifyHost()
-    {
-        return $this->verifyHost;
-    }
-
-    public function setVerifyHost($verifyHost)
-    {
-        $this->verifyHost = $verifyHost;
-    }
-
-    public function setProxy($proxy)
-    {
-        $this->proxy = $proxy;
-    }
-
-    public function getProxy()
-    {
-        return $this->proxy;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Client/AbstractCurl.php b/vendor/kriswallsmith/buzz/lib/Buzz/Client/AbstractCurl.php
deleted file mode 100644
index 2c25fc6f5bd4f6b864537aceaa5270c0005a380b..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Client/AbstractCurl.php
+++ /dev/null
@@ -1,232 +0,0 @@
-<?php
-
-namespace Buzz\Client;
-
-use Buzz\Message\Form\FormRequestInterface;
-use Buzz\Message\Form\FormUploadInterface;
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-use Buzz\Exception\ClientException;
-
-/**
- * Base client class with helpers for working with cURL.
- */
-abstract class AbstractCurl extends AbstractClient
-{
-    protected $options = array();
-
-    public function __construct()
-    {
-        if (defined('CURLOPT_PROTOCOLS')) {
-            $this->options = array(
-                CURLOPT_PROTOCOLS => CURLPROTO_HTTP | CURLPROTO_HTTPS,
-                CURLOPT_REDIR_PROTOCOLS => CURLPROTO_HTTP | CURLPROTO_HTTPS,
-            );
-        }
-    }
-
-    /**
-     * Creates a new cURL resource.
-     *
-     * @see curl_init()
-     *
-     * @return resource A new cURL resource
-     *
-     * @throws ClientException If unable to create a cURL resource
-     */
-    protected static function createCurlHandle()
-    {
-        if (false === $curl = curl_init()) {
-            throw new ClientException('Unable to create a new cURL handle');
-        }
-
-        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
-        curl_setopt($curl, CURLOPT_HEADER, true);
-
-        return $curl;
-    }
-
-    /**
-     * Populates a response object.
-     *
-     * @param resource         $curl     A cURL resource
-     * @param string           $raw      The raw response string
-     * @param MessageInterface $response The response object
-     */
-    protected static function populateResponse($curl, $raw, MessageInterface $response)
-    {
-        // fixes bug https://sourceforge.net/p/curl/bugs/1204/
-        $version = curl_version();
-        if (version_compare($version['version'], '7.30.0', '<')) {
-            $pos = strlen($raw) - curl_getinfo($curl, CURLINFO_SIZE_DOWNLOAD);
-        } else {
-            $pos = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
-        }
-
-        $response->setHeaders(static::getLastHeaders(rtrim(substr($raw, 0, $pos))));
-        $response->setContent(strlen($raw) > $pos ? substr($raw, $pos) : '');
-    }
-
-    /**
-     * Sets options on a cURL resource based on a request.
-     */
-    private static function setOptionsFromRequest($curl, RequestInterface $request)
-    {
-        $options = array(
-            CURLOPT_HTTP_VERSION  => $request->getProtocolVersion() == 1.0 ? CURL_HTTP_VERSION_1_0 : CURL_HTTP_VERSION_1_1,
-            CURLOPT_CUSTOMREQUEST => $request->getMethod(),
-            CURLOPT_URL           => $request->getHost().$request->getResource(),
-            CURLOPT_HTTPHEADER    => $request->getHeaders(),
-        );
-
-        switch ($request->getMethod()) {
-            case RequestInterface::METHOD_HEAD:
-                $options[CURLOPT_NOBODY] = true;
-                break;
-
-            case RequestInterface::METHOD_GET:
-                $options[CURLOPT_HTTPGET] = true;
-                break;
-
-            case RequestInterface::METHOD_POST:
-            case RequestInterface::METHOD_PUT:
-            case RequestInterface::METHOD_DELETE:
-            case RequestInterface::METHOD_PATCH:
-            case RequestInterface::METHOD_OPTIONS:
-                $options[CURLOPT_POSTFIELDS] = $fields = static::getPostFields($request);
-
-                // remove the content-type header
-                if (is_array($fields)) {
-                    $options[CURLOPT_HTTPHEADER] = array_filter($options[CURLOPT_HTTPHEADER], function($header) {
-                        return 0 !== stripos($header, 'Content-Type: ');
-                    });
-                }
-
-                break;
-        }
-
-        curl_setopt_array($curl, $options);
-    }
-
-    /**
-     * Returns a value for the CURLOPT_POSTFIELDS option.
-     *
-     * @return string|array A post fields value
-     */
-    private static function getPostFields(RequestInterface $request)
-    {
-        if (!$request instanceof FormRequestInterface) {
-            return $request->getContent();
-        }
-
-        $fields = $request->getFields();
-        $multipart = false;
-
-        foreach ($fields as $name => $value) {
-            if (!$value instanceof FormUploadInterface) {
-                continue;
-            }
-
-            if (!$file = $value->getFile()) {
-                return $request->getContent();
-            }
-
-            $multipart = true;
-
-            if (version_compare(PHP_VERSION, '5.5', '>=')) {
-                $curlFile = new \CURLFile($file);
-                if ($contentType = $value->getContentType()) {
-                    $curlFile->setMimeType($contentType);
-                }
-
-                if (basename($file) != $value->getFilename()) {
-                    $curlFile->setPostFilename($value->getFilename());
-                }
-
-                $fields[$name] = $curlFile;
-            } else {
-                // replace value with upload string
-                $fields[$name] = '@'.$file;
-
-                if ($contentType = $value->getContentType()) {
-                    $fields[$name] .= ';type='.$contentType;
-                }
-                if (basename($file) != $value->getFilename()) {
-                    $fields[$name] .= ';filename='.$value->getFilename();
-                }
-            }
-        }
-
-        return $multipart ? $fields : http_build_query($fields, '', '&');
-    }
-
-    /**
-     * A helper for getting the last set of headers.
-     *
-     * @param string $raw A string of many header chunks
-     *
-     * @return array An array of header lines
-     */
-    private static function getLastHeaders($raw)
-    {
-        $headers = array();
-        foreach (preg_split('/(\\r?\\n)/', $raw) as $header) {
-            if ($header) {
-                $headers[] = $header;
-            } else {
-                $headers = array();
-            }
-        }
-
-        return $headers;
-    }
-
-    /**
-     * Stashes a cURL option to be set on send, when the resource is created.
-     *
-     * If the supplied value it set to null the option will be removed.
-     *
-     * @param integer $option The option
-     * @param mixed   $value  The value
-     *
-     * @see curl_setopt()
-     */
-    public function setOption($option, $value)
-    {
-        if (null === $value) {
-            unset($this->options[$option]);
-        } else {
-            $this->options[$option] = $value;
-        }
-    }
-
-    /**
-     * Prepares a cURL resource to send a request.
-     */
-    protected function prepare($curl, RequestInterface $request, array $options = array())
-    {
-        static::setOptionsFromRequest($curl, $request);
-
-        // apply settings from client
-        if ($this->getTimeout() < 1) {
-            curl_setopt($curl, CURLOPT_TIMEOUT_MS, $this->getTimeout() * 1000);
-        } else {
-            curl_setopt($curl, CURLOPT_TIMEOUT, $this->getTimeout());
-        }
-
-        if ($this->proxy) {
-            curl_setopt($curl, CURLOPT_PROXY, $this->proxy);
-        }
-
-        $canFollow = !ini_get('safe_mode') && !ini_get('open_basedir');
-
-        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, $canFollow && $this->getMaxRedirects() > 0);
-        curl_setopt($curl, CURLOPT_MAXREDIRS, $canFollow ? $this->getMaxRedirects() : 0);
-        curl_setopt($curl, CURLOPT_FAILONERROR, !$this->getIgnoreErrors());
-        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $this->getVerifyPeer());
-        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, $this->getVerifyHost());
-
-        // apply additional options
-        curl_setopt_array($curl, $options + $this->options);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Client/AbstractStream.php b/vendor/kriswallsmith/buzz/lib/Buzz/Client/AbstractStream.php
deleted file mode 100644
index 095b8c54e567d72d47703056fb1625797e13577f..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Client/AbstractStream.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-namespace Buzz\Client;
-
-use Buzz\Message\RequestInterface;
-
-abstract class AbstractStream extends AbstractClient
-{
-    /**
-     * Converts a request into an array for stream_context_create().
-     *
-     * @param RequestInterface $request A request object
-     *
-     * @return array An array for stream_context_create()
-     */
-    public function getStreamContextArray(RequestInterface $request)
-    {
-        $options = array(
-            'http' => array(
-                // values from the request
-                'method'           => $request->getMethod(),
-                'header'           => implode("\r\n", $request->getHeaders()),
-                'content'          => $request->getContent(),
-                'protocol_version' => $request->getProtocolVersion(),
-
-                // values from the current client
-                'ignore_errors'    => $this->getIgnoreErrors(),
-                'follow_location'  => $this->getMaxRedirects() > 0,
-                'max_redirects'    => $this->getMaxRedirects() + 1,
-                'timeout'          => $this->getTimeout(),
-            ),
-            'ssl' => array(
-                'verify_peer'      => $this->getVerifyPeer(),
-                'verify_host'      => $this->getVerifyHost(),
-            ),
-        );
-
-        if ($this->proxy) {
-            $options['http']['proxy'] = $this->proxy;
-            $options['http']['request_fulluri'] = true;
-        }
-
-        return $options;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Client/BatchClientInterface.php b/vendor/kriswallsmith/buzz/lib/Buzz/Client/BatchClientInterface.php
deleted file mode 100644
index 4d395dccfb55b9cad67b7d0a046a98e80bf4ef2b..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Client/BatchClientInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Buzz\Client;
-
-use Buzz\Exception\ClientException;
-
-/**
- * A client capable of running batches of requests.
- *
- * The Countable implementation should return the number of queued requests.
- */
-interface BatchClientInterface extends ClientInterface, \Countable
-{
-    /**
-     * Processes all queued requests.
-     *
-     * @throws ClientException If something goes wrong
-     */
-    public function flush();
-
-    /**
-     * Processes zero or more queued requests.
-     *
-     * @throws ClientException If something goes wrong
-     */
-    public function proceed();
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Client/ClientInterface.php b/vendor/kriswallsmith/buzz/lib/Buzz/Client/ClientInterface.php
deleted file mode 100644
index 8bc0cded121feb9ffb1354d65fafd10a995a7953..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Client/ClientInterface.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Buzz\Client;
-
-use Buzz\Exception\ClientException;
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-
-interface ClientInterface
-{
-    /**
-     * Populates the supplied response with the response for the supplied request.
-     *
-     * @param RequestInterface $request  A request object
-     * @param MessageInterface $response A response object
-     *
-     * @throws ClientException If something goes wrong
-     */
-    public function send(RequestInterface $request, MessageInterface $response);
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Client/Curl.php b/vendor/kriswallsmith/buzz/lib/Buzz/Client/Curl.php
deleted file mode 100644
index 4f3cdc5896e9b50ad03c8c133d7a8ff9bf194ea5..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Client/Curl.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace Buzz\Client;
-
-use Buzz\Exception\RequestException;
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-use Buzz\Exception\LogicException;
-
-class Curl extends AbstractCurl
-{
-    private $lastCurl;
-
-    public function send(RequestInterface $request, MessageInterface $response, array $options = array())
-    {
-        if (is_resource($this->lastCurl)) {
-            curl_close($this->lastCurl);
-        }
-
-        $this->lastCurl = static::createCurlHandle();
-        $this->prepare($this->lastCurl, $request, $options);
-
-        $data = curl_exec($this->lastCurl);
-
-        if (false === $data) {
-            $errorMsg = curl_error($this->lastCurl);
-            $errorNo  = curl_errno($this->lastCurl);
-
-            $e = new RequestException($errorMsg, $errorNo);
-            $e->setRequest($request);
-
-            throw $e;
-        }
-
-        static::populateResponse($this->lastCurl, $data, $response);
-    }
-
-    /**
-     * Introspects the last cURL request.
-     *
-     * @see curl_getinfo()
-     *
-     * @throws LogicException If there is no cURL resource
-     */
-    public function getInfo($opt = 0)
-    {
-        if (!is_resource($this->lastCurl)) {
-            throw new LogicException('There is no cURL resource');
-        }
-
-        return 0 === $opt ? curl_getinfo($this->lastCurl) : curl_getinfo($this->lastCurl, $opt);
-    }
-
-    public function __destruct()
-    {
-        if (is_resource($this->lastCurl)) {
-            curl_close($this->lastCurl);
-        }
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Client/FileGetContents.php b/vendor/kriswallsmith/buzz/lib/Buzz/Client/FileGetContents.php
deleted file mode 100644
index e8d56a3b6322ecce6ab6cdcf98c24ed02ee48654..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Client/FileGetContents.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace Buzz\Client;
-
-use Buzz\Exception\RequestException;
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-
-use Buzz\Exception\ClientException;
-
-class FileGetContents extends AbstractStream
-{
-    /**
-     * @see ClientInterface
-     *
-     * @throws ClientException If file_get_contents() fires an error
-     */
-    public function send(RequestInterface $request, MessageInterface $response)
-    {
-        $context = stream_context_create($this->getStreamContextArray($request));
-        $url = $request->getHost().$request->getResource();
-
-        $level = error_reporting(0);
-        $content = file_get_contents($url, 0, $context);
-        error_reporting($level);
-        if (false === $content) {
-            $error = error_get_last();
-            $e = new RequestException($error['message']);
-            $e->setRequest($request);
-
-            throw $e;
-        }
-
-        $response->setHeaders($this->filterHeaders((array) $http_response_header));
-        $response->setContent($content);
-    }
-
-    private function filterHeaders(array $headers)
-    {
-        $filtered = array();
-        foreach ($headers as $header) {
-            if (0 === stripos($header, 'http/')) {
-                $filtered = array();
-            }
-
-            $filtered[] = $header;
-        }
-
-        return $filtered;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Client/MultiCurl.php b/vendor/kriswallsmith/buzz/lib/Buzz/Client/MultiCurl.php
deleted file mode 100644
index ba2ea69965bbf6f2558862ae8d27211292abdf33..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Client/MultiCurl.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-namespace Buzz\Client;
-
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-use Buzz\Exception\ClientException;
-
-class MultiCurl extends AbstractCurl implements BatchClientInterface
-{
-    private $queue = array();
-    private $curlm;
-
-    /**
-     * Populates the supplied response with the response for the supplied request.
-     *
-     * The array of options will be passed to curl_setopt_array().
-     *
-     * If a "callback" option is supplied, its value will be called when the
-     * request completes. The callable should have the following signature:
-     *
-     *     $callback = function($client, $request, $response, $options, $error) {
-     *         if (!$error) {
-     *             // success
-     *         } else {
-     *             // error ($error is one of the CURLE_* constants)
-     *         }
-     *     };
-     *
-     * @param RequestInterface $request  A request object
-     * @param MessageInterface $response A response object
-     * @param array            $options  An array of options
-     */
-    public function send(RequestInterface $request, MessageInterface $response, array $options = array())
-    {
-        $this->queue[] = array($request, $response, $options);
-    }
-
-    public function count()
-    {
-        return count($this->queue);
-    }
-
-    public function flush()
-    {
-        while ($this->queue) {
-            $this->proceed();
-        }
-    }
-
-    public function proceed()
-    {
-        if (!$this->queue) {
-            return;
-        }
-
-        if (!$this->curlm && false === $this->curlm = curl_multi_init()) {
-            throw new ClientException('Unable to create a new cURL multi handle');
-        }
-
-        foreach (array_keys($this->queue) as $i) {
-            if (3 == count($this->queue[$i])) {
-                // prepare curl handle
-                list($request, , $options) = $this->queue[$i];
-                $curl = static::createCurlHandle();
-
-                // remove custom option
-                unset($options['callback']);
-
-                $this->prepare($curl, $request, $options);
-                $this->queue[$i][] = $curl;
-                curl_multi_add_handle($this->curlm, $curl);
-            }
-        }
-
-        // process outstanding perform
-        $active = null;
-        do {
-            $mrc = curl_multi_exec($this->curlm, $active);
-        } while ($active && CURLM_CALL_MULTI_PERFORM == $mrc);
-
-        // handle any completed requests
-        while ($done = curl_multi_info_read($this->curlm)) {
-            foreach (array_keys($this->queue) as $i) {
-                list($request, $response, $options, $curl) = $this->queue[$i];
-
-                if ($curl !== $done['handle']) {
-                    continue;
-                }
-
-                // populate the response object
-                if (CURLE_OK === $done['result']) {
-                    static::populateResponse($curl, curl_multi_getcontent($curl), $response);
-                }
-
-                // remove from queue
-                curl_multi_remove_handle($this->curlm, $curl);
-                curl_close($curl);
-                unset($this->queue[$i]);
-
-                // callback
-                if (isset($options['callback'])) {
-                    call_user_func($options['callback'], $this, $request, $response, $options, $done['result']);
-                }
-            }
-        }
-
-        // cleanup
-        if (!$this->queue) {
-            curl_multi_close($this->curlm);
-            $this->curlm = null;
-        }
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/ClientException.php b/vendor/kriswallsmith/buzz/lib/Buzz/Exception/ClientException.php
deleted file mode 100644
index 187157ee8c73fd3e1c883ed9df743a0d3dfe3ee7..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/ClientException.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Buzz\Exception;
-
-/**
- * Thrown whenever a client process fails.
- */
-class ClientException extends RuntimeException
-{
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/ExceptionInterface.php b/vendor/kriswallsmith/buzz/lib/Buzz/Exception/ExceptionInterface.php
deleted file mode 100644
index bf9f27eab9421aba610f9e53a597b3e0a5f14a47..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Buzz\Exception;
-
-/**
- * Marker interface to denote exceptions thrown from the Buzz context.
- */
-interface ExceptionInterface
-{
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/InvalidArgumentException.php b/vendor/kriswallsmith/buzz/lib/Buzz/Exception/InvalidArgumentException.php
deleted file mode 100644
index 2f8dd3a125635901599a8fa02d06054e6b0a8d4d..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Buzz\Exception;
-
-/**
- * Thrown when an invalid argument is provided.
- */
-class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/LogicException.php b/vendor/kriswallsmith/buzz/lib/Buzz/Exception/LogicException.php
deleted file mode 100644
index fe5420473a46df4ec56c49f024053c02c8ff75e6..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/LogicException.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Buzz\Exception;
-
-/**
- * Thrown whenever a required call-flow is not respected.
- */
-class LogicException extends \LogicException implements ExceptionInterface
-{
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/RequestException.php b/vendor/kriswallsmith/buzz/lib/Buzz/Exception/RequestException.php
deleted file mode 100644
index c9e66acea08ca16b1056a40c77b2c63deb8e033d..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/RequestException.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace Buzz\Exception;
-
-use Buzz\Message\RequestInterface;
-
-class RequestException extends ClientException
-{
-    /**
-     * Request object
-     *
-     * @var RequestInterface
-     */
-    private $request;
-
-    /**
-     * @return RequestInterface
-     */
-    public function getRequest()
-    {
-        return $this->request;
-    }
-
-    /**
-     * @param RequestInterface $request
-     */
-    public function setRequest(RequestInterface $request)
-    {
-        $this->request = $request;
-    }
-
-}
\ No newline at end of file
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/RuntimeException.php b/vendor/kriswallsmith/buzz/lib/Buzz/Exception/RuntimeException.php
deleted file mode 100644
index 471f54bc3d86ec7beaa50a173172d4dce0eab158..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Exception/RuntimeException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Buzz\Exception;
-
-class RuntimeException extends \RuntimeException implements ExceptionInterface
-{
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/BasicAuthListener.php b/vendor/kriswallsmith/buzz/lib/Buzz/Listener/BasicAuthListener.php
deleted file mode 100644
index 5b6eadd232604c57ad2e870d0bbe2b1da3ee8c22..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/BasicAuthListener.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Buzz\Listener;
-
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-
-class BasicAuthListener implements ListenerInterface
-{
-    private $username;
-    private $password;
-
-    public function __construct($username, $password)
-    {
-        $this->username = $username;
-        $this->password = $password;
-    }
-
-    public function preSend(RequestInterface $request)
-    {
-        $request->addHeader('Authorization: Basic '.base64_encode($this->username.':'.$this->password));
-    }
-
-    public function postSend(RequestInterface $request, MessageInterface $response)
-    {
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/CallbackListener.php b/vendor/kriswallsmith/buzz/lib/Buzz/Listener/CallbackListener.php
deleted file mode 100644
index 77f7fa831babd60c0ad5f52237dee236b38f8e88..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/CallbackListener.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-namespace Buzz\Listener;
-
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-use Buzz\Exception\InvalidArgumentException;
-
-class CallbackListener implements ListenerInterface
-{
-    private $callable;
-
-    /**
-     * Constructor.
-     *
-     * The callback should expect either one or two arguments, depending on
-     * whether it is receiving a pre or post send notification.
-     *
-     *     $listener = new CallbackListener(function($request, $response = null) {
-     *         if ($response) {
-     *             // postSend
-     *         } else {
-     *             // preSend
-     *         }
-     *     });
-     *
-     * @param mixed $callable A PHP callable
-     *
-     * @throws InvalidArgumentException If the argument is not callable
-     */
-    public function __construct($callable)
-    {
-        if (!is_callable($callable)) {
-            throw new InvalidArgumentException('The argument is not callable.');
-        }
-
-        $this->callable = $callable;
-    }
-
-    public function preSend(RequestInterface $request)
-    {
-        call_user_func($this->callable, $request);
-    }
-
-    public function postSend(RequestInterface $request, MessageInterface $response)
-    {
-        call_user_func($this->callable, $request, $response);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/CookieListener.php b/vendor/kriswallsmith/buzz/lib/Buzz/Listener/CookieListener.php
deleted file mode 100644
index 56c4101767ae36366ffb14b67b9ae9e8c32f2d9a..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/CookieListener.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Buzz\Listener;
-
-use Buzz\Message\RequestInterface;
-use Buzz\Message\MessageInterface;
-
-use Buzz\Util\Cookie;
-use Buzz\Util\CookieJar;
-
-class CookieListener implements ListenerInterface
-{
-    private $cookieJar;
-
-    public function __construct()
-    {
-        $this->cookieJar = new CookieJar();
-    }
-
-    public function setCookies($cookies)
-    {
-        $this->cookieJar->setCookies($cookies);
-    }
-
-    public function getCookies()
-    {
-        return $this->cookieJar->getCookies();
-    }
-
-    /**
-     * Adds a cookie to the current cookie jar.
-     *
-     * @param Cookie $cookie A cookie object
-     */
-    public function addCookie(Cookie $cookie)
-    {
-        $this->cookieJar->addCookie($cookie);
-    }
-
-    public function preSend(RequestInterface $request)
-    {
-        $this->cookieJar->clearExpiredCookies();
-        $this->cookieJar->addCookieHeaders($request);
-    }
-
-    public function postSend(RequestInterface $request, MessageInterface $response)
-    {
-        $this->cookieJar->processSetCookieHeaders($request, $response);
-    }
-}
\ No newline at end of file
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/DigestAuthListener.php b/vendor/kriswallsmith/buzz/lib/Buzz/Listener/DigestAuthListener.php
deleted file mode 100644
index d1262f8519233385fa93efa173621590bffce4b3..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/DigestAuthListener.php
+++ /dev/null
@@ -1,837 +0,0 @@
-<?php
-
-namespace Buzz\Listener;
-
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-
-class DigestAuthListener implements ListenerInterface
-{
-    private $username;
-    private $password;
-    private $realm;
-
-    private $algorithm;
-    private $authenticationMethod;
-    private $clientNonce;
-    private $domain;
-    private $entityBody;
-    private $method;
-    private $nonce;
-    private $nonceCount;
-    private $opaque;
-    private $uri;
-
-    /**
-     * QOP options: Only one of the following can be set at any time. setOptions will throw an exception otherwise.
-     * OPTION_QOP_AUTH_INT       - Always use auth-int   (if available)
-     * OPTION_QOP_AUTH           - Always use auth       (even if auth-int available)
-     */
-    const OPTION_QOP_AUTH_INT             = 1;
-    const OPTION_QOP_AUTH                 = 2;
-    /**
-     * Ignore server request to downgrade authentication from Digest to Basic.
-     * Breaks RFC compatibility, but ensures passwords are never sent using base64 which is trivial for an attacker to decode.
-     */
-    const OPTION_IGNORE_DOWNGRADE_REQUEST = 4;
-    /**
-     * Discard Client Nonce on each request.
-     */
-    const OPTION_DISCARD_CLIENT_NONCE     = 8;
-
-    private $options;
-
-    /**
-     * Set OPTION_QOP_BEST_AVAILABLE and OPTION_DISCARD_CLIENT_NONCE by default.
-     */
-    public function __construct($username = null, $password = null, $realm = null)
-    {
-        $this->setUsername($username);
-        $this->setPassword($password);
-        $this->setRealm($realm);
-        $this->setOptions(DigestAuthListener::OPTION_QOP_AUTH_INT & DigestAuthListener::OPTION_DISCARD_CLIENT_NONCE);
-    }
-
-    /**
-     * Passes the returned server headers to parseServerHeaders() to check if any authentication variables need to be set.
-     * Inteprets the returned status code and attempts authentication if status is 401 (Authentication Required) by resending
-     * the last request with an Authentication header.
-     *
-     * @param RequestInterface $request  A request object
-     * @param MessageInterface $response A response object
-     */
-    public function postSend(RequestInterface $request, MessageInterface $response)
-    {
-        $statusCode = $response->getStatusCode();
-        $this->parseServerHeaders($response->getHeaders(), $statusCode);
-    }
-
-    /**
-     * Populates uri, method and entityBody used to generate the Authentication header using the specified request object.
-     * Appends the Authentication header if it is present and has been able to be calculated.
-     *
-     * @param RequestInterface $request  A request object
-     */
-    public function preSend(RequestInterface $request)
-    {
-        $this->setUri($request->getResource());
-        $this->setMethod($request->getMethod());
-        $this->setEntityBody($request->getContent());
-
-        $header = $this->getHeader();
-        if($header) {
-            $request->addHeader($header);
-        }
-    }
-
-    /**
-     * Sets the password to be used to authenticate the client.
-     *
-     * @param string $password The password
-     *
-     * @return void
-     */
-    public function setPassword($password)
-    {
-        $this->password = $password;
-    }
-
-    /**
-     * Sets the realm to be used to authenticate the client.
-     *
-     * @param string $realm The realm
-     *
-     * @return void
-     */
-    public function setRealm($realm)
-    {
-        $this->realm = $realm;
-    }
-
-    /**
-     * Sets the username to be used to authenticate the client.
-     *
-     * @param string $username The username
-     *
-     * @return void
-     */
-    public function setUsername($username)
-    {
-        $this->username = $username;
-    }
-
-    /**
-     * Sets the options to be used by this class.
-     *
-     * @param int $options A bitmask of the constants defined in this class.
-     *
-     * @return void
-     */
-    public function setOptions($options)
-    {
-        if(($options & DigestAuthListener::OPTION_QOP_AUTH_INT) === true) {
-            if(($options & DigestAuthListener::OPTION_QOP_AUTH) === true) {
-                throw new \InvalidArgumentException('DigestAuthListener: Only one value of OPTION_QOP_AUTH_INT or OPTION_QOP_AUTH may be set.');
-            }
-            $this->options = $this->options | DigestAuthListener::OPTION_QOP_AUTH_INT;
-        } else {
-            if(($options & DigestAuthListener::OPTION_QOP_AUTH) === true) {
-                $this->options = $this->options | DigestAuthListener::OPTION_QOP_AUTH;
-            }
-        }
-
-        if(($options & DigestAuthListener::OPTION_IGNORE_DOWNGRADE_REQUEST) === true) {
-            $this->options = $this->options | DigestAuthListener::OPTION_IGNORE_DOWNGRADE_REQUEST;
-        }
-
-        if(($options & DigestAuthListener::OPTION_DISCARD_CLIENT_NONCE) === true) {
-            $this->options = $this->options | DigestAuthListener::OPTION_DISCARD_CLIENT_NONCE;
-        }
-    }
-
-    /**
-     * Discards the Client Nonce forcing the generation of a new Client Nonce on the next request.
-     *
-     * @return void
-     */
-    private function discardClientNonce()
-    {
-        $this->clientNonce = null;
-    }
-
-    /**
-     * Returns the hashing algorithm to be used to generate the digest value. Currently only returns MD5.
-     *
-     * @return string The hashing algorithm to be used.
-     */
-    private function getAlgorithm()
-    {
-        if($this->algorithm == null) {
-            $this->algorithm = 'MD5';
-        }
-        return $this->algorithm;
-    }
-
-    /**
-     * Returns the authentication method requested by the server.
-     * If OPTION_IGNORE_DOWNGRADE_REQUEST is set this will always return "Digest"
-     *
-     * @return string Returns either "Digest" or "Basic".
-     */
-    private function getAuthenticationMethod()
-    {
-        if(($this->options & DigestAuthListener::OPTION_IGNORE_DOWNGRADE_REQUEST) === true) {
-            return "Digest";
-        }
-        return $this->authenticationMethod;
-    }
-
-    /**
-     * Returns either the current value of clientNonce or generates a new value if clientNonce is null.
-     * Also increments nonceCount.
-     *
-     * @return string Returns either the current value of clientNonce the newly generated clientNonce;
-     */
-    private function getClientNonce()
-    {
-        if($this->clientNonce == null) {
-            $this->clientNonce = uniqid();
-
-            if($this->nonceCount == null) {
-// If nonceCount is not set then set it to 00000001.
-                $this->nonceCount = '00000001';
-            } else {
-// If it is set then increment it.
-                $this->nonceCount++;
-// Ensure nonceCount is zero-padded at the start of the string to a length of 8
-                while(strlen($this->nonceCount) < 8) {
-                    $this->nonceCount = '0' . $this->nonceCount;
-                }
-            }
-        }
-        return $this->clientNonce;
-    }
-
-    /**
-     * Returns a space separated list of uris that the server nonce can be used to generate an authentication response against.
-     *
-     * @return string Space separated list of uris.
-     */
-    private function getDomain()
-    {
-        return $this->domain;
-    }
-
-    /**
-     * Returns the entity body of the current request.
-     * The entity body is the request before it has been encoded with the content-encoding and minus the request headers.
-     *
-     * @return string The full entity-body.
-     */
-    private function getEntityBody()
-    {
-        return (string)$this->entityBody;
-    }
-
-    /**
-     * Calculates the value of HA1 according to RFC 2617 and RFC 2069.
-     *
-     * @return string The value of HA1
-     */
-    private function getHA1()
-    {
-        $username = $this->getUsername();
-        $password = $this->getPassword();
-        $realm = $this->getRealm();
-
-        if(($username) AND ($password) AND ($realm)) {
-            $algorithm = $this->getAlgorithm();
-
-            if(!isset($algorithm) OR ($algorithm == "MD5")) {
-
-                $A1 = "{$username}:{$realm}:{$password}";
-            }
-            if($this->algorithm == "MD5-sess") {
-
-                $nonce = $this->getNonce();
-                $cnonce = $this->getClientNonce();
-                if(($nonce) AND ($cnonce)) {
-                    $A1 = $this->hash("{$username}:{$realm}:{$password}") . ":{$nonce}:{$cnonce}";              
-                }
-            }
-            if(isset($A1)) {
-                $HA1 = $this->hash($A1);
-                return $HA1;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Calculates the value of HA2 according to RFC 2617 and RFC 2069.
-     *
-     * @return string The value of HA2
-     */
-    private function getHA2()
-    {
-        $method = $this->getMethod();
-        $uri = $this->getUri();
-
-        if(($method) AND ($uri)) {
-            $qop = $this->getQOP();
-
-            if(!isset($qop) OR ($qop == 'auth')) {
-                $A2 = "{$method}:{$uri}";
-            }
-            if($qop == 'auth-int') {
-                $entityBody = $this->getEntityBody();
-                $A2 = "{$method}:{$uri}:" . $this->hash($entityBody);
-            }
-
-            if(isset($A2)) {
-                $HA2 = $this->hash($A2);
-                return $HA2;
-            }           
-        }
-        return null;
-    }
-
-    /**
-     * Returns the full Authentication header for use in authenticating the client with either Digest or Basic authentication.
-     *
-     * @return string The Authentication header to be sent to the server.
-     */
-    private function getHeader()
-    {
-        if($this->getAuthenticationMethod() == 'Digest') {
-            $username = $this->getUsername();
-            $realm = $this->getRealm();
-            $nonce = $this->getNonce();
-            $response = $this->getResponse();
-            if(($username) AND ($realm) AND ($nonce) AND ($response)) {
-                $uri = $this->getUri();
-                $opaque = $this->getOpaque();
-                $domain = $this->getDomain();
-                $qop = $this->getQOP();
-
-                $header = "Authorization: Digest";
-                $header .= " username=\"" . $username . "\",";
-                $header .= " realm=\"" . $realm . "\",";
-                $header .= " nonce=\"" . $nonce . "\",";
-                $header .= " response=\"" . $response . "\",";
-
-                if($uri) {
-                    $header .= " uri=\"" . $uri . "\",";
-                }
-                if($opaque) {
-                    $header .= " opaque=\"" . $opaque . "\",";
-                }
-
-                if($qop) {
-                    $header .= " qop=" . $qop . ",";
-                
-                    $cnonce = $this->getClientNonce();
-                    $nc = $this->getNonceCount();
-
-                    if($cnonce) {
-                        $header .= " nc=" . $nc . ",";
-                    }
-                    if($cnonce) {
-                        $header .= " cnonce=\"" . $cnonce . "\",";
-                    }
-                }
-
-// Remove the last comma from the header
-                $header = substr($header, 0, strlen($header) - 1);
-// Discard the Client Nonce if OPTION_DISCARD_CLIENT_NONCE is set.
-                if(($this->options & DigestAuthListener::OPTION_DISCARD_CLIENT_NONCE) === true) {
-                    $this->discardClientNonce();
-                }
-                return $header;
-            }
-        }
-        if($this->getAuthenticationMethod() == 'Basic') {
-            $username = $this->getUsername();
-            $password = $this->getPassword();
-            if(($username) AND ($password)) {
-                $header = 'Authorization: Basic ' . base64_encode("{$username}:{$password}");
-                return $header;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the HTTP method used in the current request.
-     *
-     * @return string One of GET,POST,PUT,DELETE or HEAD.
-     */
-    private function getMethod()
-    {
-        return $this->method;
-    }
-
-    /**
-     * Returns the value of nonce we have received in the server headers.
-     *
-     * @return string The value of the server nonce.
-     */
-    private function getNonce()
-    {
-        return $this->nonce;
-    }
-
-    /**
-     * Returns the current nonce counter for the client nonce.
-     *
-     * @return string An eight digit zero-padded string which reflects the number of times the clientNonce has been generated.
-     */
-    private function getNonceCount()
-    {
-        return $this->nonceCount;
-    }
-
-    /**
-     * Returns the opaque value that was sent to us from the server.
-     *
-     * @return string The value of opaque.
-     */
-    private function getOpaque()
-    {
-        return $this->opaque;
-    }
-
-    /**
-     * Returns the plaintext password for the client.
-     *
-     * @return string The value of password.
-     */
-    private function getPassword()
-    {
-        return $this->password;
-    }
-
-    /**
-     * Returns either the realm specified by the client, or the realm specified by the server.
-     * If the server set the value of realm then anything set by our client is overwritten.
-     *
-     * @return string The value of realm.
-     */
-    private function getRealm()
-    {
-        return $this->realm;
-    }
-
-    /**
-     * Calculates the value of response according to RFC 2617 and RFC 2069.
-     *
-     * @return string The value of response
-     */
-    private function getResponse()
-    {
-        $HA1 = $this->getHA1();
-        $nonce = $this->getNonce();
-        $HA2 = $this->getHA2();
-
-        if(($HA1) AND ($nonce) AND ($HA2)) {
-            $qop = $this->getQOP();
-
-            if(!isset($qop)) {
-                $response = $this->hash("{$HA1}:{$nonce}:{$HA2}");
-                return $response;
-            } else {
-                $cnonce = $this->getClientNonce();
-                $nc = $this->getNonceCount();
-                if(($cnonce) AND ($nc)) {
-                    $response = $this->hash("{$HA1}:{$nonce}:{$nc}:{$cnonce}:{$qop}:{$HA2}");
-                    return $response;
-                }
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the Quality of Protection to be used when authenticating with the server.
-     *
-     * @return string This will either be auth-int or auth.
-     */
-    private function getQOP()
-    {
-// Has the server specified any options for Quality of Protection
-        if(isset($this->qop) AND count($this->qop)) {
-            if(($this->options & DigestAuthListener::OPTION_QOP_AUTH_INT) === true) {
-                if(in_array('auth-int', $this->qop)) {
-                    return 'auth-int';
-                }
-                if(in_array('auth', $this->qop)) {
-                    return 'auth';
-                }
-            }
-            if(($this->options & DigestAuthListener::OPTION_QOP_AUTH) === true) {
-                if(in_array('auth', $this->qop)) {
-                    return 'auth';
-                }
-                if(in_array('auth-int', $this->qop)) {
-                    return 'auth-int';
-                }
-            }            
-        }
-// Server has not specified any value for Quality of Protection so return null
-        return null;
-    }
-
-    /**
-     * Returns the username set by the client to authenticate with the server.
-     *
-     * @return string The value of username
-     */
-    private function getUsername()
-    {
-        return $this->username;
-    }
-
-    /**
-     * Returns the uri that we are requesting access to.
-     *
-     * @return string The value of uri
-     */
-    private function getUri()
-    {
-        return $this->uri;
-    }
-
-    /**
-     * Calculates the hash for a given value using the algorithm specified by the server.
-     *
-     * @param string $value The value to be hashed
-     *
-     * @return string The hashed value.
-     */
-    private function hash($value)
-    {
-        $algorithm = $this->getAlgorithm();
-        if(($algorithm == 'MD5') OR ($algorithm == 'MD5-sess')) {
-            return hash('md5', $value);
-        }
-        return null;
-    }
-
-    /**
-     * Parses the Authentication-Info header received from the server and calls the relevant setter method on each variable received.
-     *
-     * @param string $authenticationInfo The full Authentication-Info header.
-     *
-     * @return void
-     */
-    private function parseAuthenticationInfoHeader($authenticationInfo)
-    {
-// Remove "Authentication-Info: " from start of header
-        $wwwAuthenticate = substr($wwwAuthenticate, 21, strlen($wwwAuthenticate) - 21);
-
-        $nameValuePairs = $this->parseNameValuePairs($wwwAuthenticate);
-        foreach($nameValuePairs as $name => $value) {
-            switch($name) {
-                case 'message-qop':
-
-                break;
-                case 'nextnonce':
-// This function needs to only set the Nonce once the rspauth has been verified.
-                    $this->setNonce($value);
-                break;
-                case 'rspauth':
-// Check server rspauth value
-                break;
-            }
-        }
-    }
-
-    /**
-     * Parses a string of name=value pairs separated by commas and returns and array with the name as the index.
-     *
-     * @param string $nameValuePairs The string containing the name=value pairs.
-     *
-     * @return array An array with the name used as the index and the values stored within.
-     */
-    private function parseNameValuePairs($nameValuePairs)
-    {
-        $parsedNameValuePairs = array();
-        $nameValuePairs = explode(',', $nameValuePairs);
-        foreach($nameValuePairs as $nameValuePair) {
-// Trim the Whitespace from the start and end of the name value pair string
-            $nameValuePair = trim($nameValuePair);
-// Split $nameValuePair (name=value) into $name and $value
-            list($name, $value) = explode('=', $nameValuePair, 2);
-// Remove quotes if the string is quoted
-            $value = $this->unquoteString($value);
-// Add pair to array[name] => value
-            $parsedNameValuePairs[$name] = $value;
-        }
-        return $parsedNameValuePairs;
-    }
-
-    /**
-     * Parses the server headers received and checks for WWW-Authenticate and Authentication-Info headers.
-     * Calls parseWwwAuthenticateHeader() and parseAuthenticationInfoHeader() respectively if either of these headers are present.
-     *
-     * @param array $headers An array of the headers received by the client.
-     *
-     * @return void
-     */
-    private function parseServerHeaders(array $headers)
-    {
-        foreach($headers as $header) {
-// Check to see if the WWW-Authenticate header is present and if so set $authHeader
-            if(strtolower(substr($header, 0, 18)) == 'www-authenticate: ') {
-                $wwwAuthenticate = $header;
-                $this->parseWwwAuthenticateHeader($wwwAuthenticate);
-            }
-// Check to see if the Authentication-Info header is present and if so set $authInfo
-            if(strtolower(substr($header, 0, 21)) == 'authentication-info: ') {
-                $authenticationInfo = $header;
-                $this->parseAuthenticationInfoHeader($wwwAuthenticate);
-            }
-        }
-    }
-
-    /**
-     * Parses the WWW-Authenticate header received from the server and calls the relevant setter method on each variable received.
-     *
-     * @param string $wwwAuthenticate The full WWW-Authenticate header.
-     *
-     * @return void
-     */
-    private function parseWwwAuthenticateHeader($wwwAuthenticate)
-    {
-// Remove "WWW-Authenticate: " from start of header
-        $wwwAuthenticate = substr($wwwAuthenticate, 18, strlen($wwwAuthenticate) - 18);
-        if(substr($wwwAuthenticate, 0, 7) == 'Digest ') {
-            $this->setAuthenticationMethod('Digest');
-// Remove "Digest " from start of header
-            $wwwAuthenticate = substr($wwwAuthenticate, 7, strlen($wwwAuthenticate) - 7);
-
-            $nameValuePairs = $this->parseNameValuePairs($wwwAuthenticate);
-
-            foreach($nameValuePairs as $name => $value) {
-                switch($name) {
-                    case 'algorithm':
-                        $this->setAlgorithm($value);
-                    break;
-                    case 'domain':
-                        $this->setDomain($value);
-                    break;
-                    case 'nonce':
-                        $this->setNonce($value);
-                    break;
-                    case 'realm':
-                        $this->setRealm($value);
-                    break;
-                    case 'opaque':
-                        $this->setOpaque($value);
-                    break;
-                    case 'qop':
-                        $this->setQOP(explode(',', $value));
-                    break;
-                }
-            }
-        }
-        if (substr($wwwAuthenticate, 0, 6) == 'Basic ') {
-            $this->setAuthenticationMethod('Basic');
-// Remove "Basic " from start of header
-            $wwwAuthenticate = substr($wwwAuthenticate, 6, strlen($wwwAuthenticate) - 6);
-
-            $nameValuePairs = $this->parseNameValuePairs($wwwAuthenticate);
-
-            foreach($nameValuePairs as $name => $value) {
-                switch($name) {
-                    case 'realm':
-                        $this->setRealm($value);
-                    break;
-                }
-            }
-        }
-    }
-
-    /**
-     * Sets the hashing algorithm to be used. Currently only uses MD5 specified by either MD5 or MD5-sess.
-     * RFCs are currently in draft stage for the proposal of SHA-256 and SHA-512-256.
-     * Support will be added once the RFC leaves the draft stage.
-     *
-     * @param string $algorithm The algorithm the server has requested to use.
-     *
-     * @throws \InvalidArgumentException If $algorithm is set to anything other than MD5 or MD5-sess.
-     *
-     * @return void
-     */
-    private function setAlgorithm($algorithm)
-    {
-        if(($algorithm == 'MD5') OR ($algorithm == 'MD5-sess')) {
-            $this->algorithm = $algorithm;
-        } else {
-            throw new \InvalidArgumentException('DigestAuthListener: Only MD5 and MD5-sess algorithms are currently supported.');
-        }
-    }
-
-    /**
-     * Sets authentication method to be used. Options are "Digest" and "Basic".
-     * If the server and the client are unable to authenticate using Digest then the RFCs state that the server should attempt
-     * to authenticate the client using Basic authentication. This ensures that we adhere to that behaviour.
-     * This does however create the possibilty of a downgrade attack so it may be an idea to add a way of disabling this functionality
-     * as Basic authentication is trivial to decrypt and exposes the username/password to a man-in-the-middle attack.
-     *
-     * @param string $authenticationMethod The authentication method requested by the server.
-     *
-     * @throws \InvalidArgumentException If $authenticationMethod is set to anything other than Digest or Basic
-     *
-     * @return void
-     */
-    private function setAuthenticationMethod($authenticationMethod)
-    {
-        if(($authenticationMethod == 'Digest') OR ($authenticationMethod == 'Basic')) {
-            $this->authenticationMethod = $authenticationMethod;
-        } else {
-            throw new \InvalidArgumentException('DigestAuthListener: Only Digest and Basic authentication methods are currently supported.');
-        }
-    }
-
-    /**
-     * Sets the domain to be authenticated against. THIS IS NOT TO BE CONFUSED WITH THE HOSTNAME/DOMAIN.
-     * This is specified by the RFC to be a list of uris separated by spaces that the client will be allowed to access.
-     * An RFC in draft stage is proposing the removal of this functionality, it does not seem to be in widespread use.
-     *
-     * @param string $domain The list of uris separated by spaces that the client will be able to access upon successful authentication.
-     *
-     * @return void
-     */
-    private function setDomain($value)
-    {
-        $this->domain = $value;
-    }
-
-    /**
-     * Sets the Entity Body of the Request for use with qop=auth-int
-     *
-     * @param string $entityBody The body of the entity (The unencoded request minus the headers).
-     *
-     * @return void
-     */
-    private function setEntityBody($entityBody = null)
-    {
-        $this->entityBody = $entityBody;
-    }
-
-    /**
-     * Sets the HTTP method being used for the request
-     *
-     * @param string $method The HTTP method
-     *
-     * @throws \InvalidArgumentException If $method is set to anything other than GET,POST,PUT,DELETE or HEAD.
-     *
-     * @return void
-     */
-    private function setMethod($method = null)
-    {
-        if($method == 'GET') {
-            $this->method = 'GET';
-            return;
-        }
-        if($method == 'POST') {
-            $this->method = 'POST';
-            return;
-        }
-        if($method == 'PUT') {
-            $this->method = 'PUT';
-            return;
-        }
-        if($method == 'DELETE') {
-            $this->method = 'DELETE';
-            return;
-        }
-        if($method == 'HEAD') {
-            $this->method = 'HEAD';
-            return;
-        }
-        throw new \InvalidArgumentException('DigestAuthListener: Only GET,POST,PUT,DELETE,HEAD HTTP methods are currently supported.');
-    }
-
-    /**
-     * Sets the value of nonce
-     *
-     * @param string $opaque The server nonce value
-     *
-     * @return void
-     */
-    private function setNonce($nonce = null)
-    {
-        $this->nonce = $nonce;
-    }
-
-    /**
-     * Sets the value of opaque
-     *
-     * @param string $opaque The opaque value
-     *
-     * @return void
-     */
-    private function setOpaque($opaque)
-    {
-        $this->opaque = $opaque;
-    }
-
-    /**
-     * Sets the acceptable value(s) for the quality of protection used by the server. Supported values are auth and auth-int.
-     * TODO: This method should give precedence to using qop=auth-int first as this offers integrity protection.
-     *
-     * @param array $qop An array with the values of qop that the server has specified it will accept.
-     *
-     * @throws \InvalidArgumentException If $qop contains any values other than auth-int or auth.
-     *
-     * @return void
-     */
-    private function setQOP(array $qop = array())
-    {
-        $this->qop = array();
-        foreach($qop as $protection) {
-            $protection = trim($protection);
-            if($protection == 'auth-int') {
-                $this->qop[] = 'auth-int';
-            } elseif($protection == 'auth') {
-                $this->qop[] = 'auth';
-            } else {
-                throw new \InvalidArgumentException('DigestAuthListener: Only auth-int and auth are supported Quality of Protection mechanisms.');
-            }
-        }
-    }
-
-    /**
-     * Sets the value of uri
-     *
-     * @param string $uri The uri
-     *
-     * @return void
-     */
-    private function setUri($uri = null)
-    {
-        $this->uri = $uri;
-    }
-
-    /**
-     * If a string contains quotation marks at either end this function will strip them. Otherwise it will remain unchanged.
-     *
-     * @param string $str The string to be stripped of quotation marks.
-     *
-     * @return string Returns the original string without the quotation marks at either end.
-     */
-    private function unquoteString($str = null)
-    {
-        if($str) {
-            if(substr($str, 0, 1) == '"') {
-                $str = substr($str, 1, strlen($str) - 1);
-            }
-            if(substr($str, strlen($str) - 1, 1) == '"') {
-                $str = substr($str, 0, strlen($str) - 1);
-            }
-        }
-        return $str;
-    }
-}
\ No newline at end of file
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/History/Entry.php b/vendor/kriswallsmith/buzz/lib/Buzz/Listener/History/Entry.php
deleted file mode 100644
index d7d21066a2089732f87183c1c44258df451c1c08..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/History/Entry.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace Buzz\Listener\History;
-
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-
-class Entry
-{
-    private $request;
-    private $response;
-    private $duration;
-
-    /**
-     * Constructor.
-     *
-     * @param RequestInterface $request  The request
-     * @param MessageInterface $response The response
-     * @param integer          $duration The duration in seconds
-     */
-    public function __construct(RequestInterface $request, MessageInterface $response, $duration = null)
-    {
-        $this->request = $request;
-        $this->response = $response;
-        $this->duration = $duration;
-    }
-
-    public function getRequest()
-    {
-        return $this->request;
-    }
-
-    public function getResponse()
-    {
-        return $this->response;
-    }
-
-    public function getDuration()
-    {
-        return $this->duration;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/History/Journal.php b/vendor/kriswallsmith/buzz/lib/Buzz/Listener/History/Journal.php
deleted file mode 100644
index 3e6e700d282eada68eccc3bb63eb88da5cf79a4b..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/History/Journal.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-namespace Buzz\Listener\History;
-
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-
-class Journal implements \Countable, \IteratorAggregate
-{
-    private $entries = array();
-    private $limit = 10;
-
-    /**
-     * Records an entry in the journal.
-     *
-     * @param RequestInterface $request  The request
-     * @param MessageInterface $response The response
-     * @param integer          $duration The duration in seconds
-     */
-    public function record(RequestInterface $request, MessageInterface $response, $duration = null)
-    {
-        $this->addEntry(new Entry($request, $response, $duration));
-    }
-
-    public function addEntry(Entry $entry)
-    {
-        array_push($this->entries, $entry);
-        $this->entries = array_slice($this->entries, $this->getLimit() * -1);
-        end($this->entries);
-    }
-
-    public function getEntries()
-    {
-        return $this->entries;
-    }
-
-    public function getLast()
-    {
-        return end($this->entries);
-    }
-
-    public function getLastRequest()
-    {
-        return $this->getLast()->getRequest();
-    }
-
-    public function getLastResponse()
-    {
-        return $this->getLast()->getResponse();
-    }
-
-    public function clear()
-    {
-        $this->entries = array();
-    }
-
-    public function count()
-    {
-        return count($this->entries);
-    }
-
-    public function setLimit($limit)
-    {
-        $this->limit = $limit;
-    }
-
-    public function getLimit()
-    {
-        return $this->limit;
-    }
-
-    public function getIterator()
-    {
-        return new \ArrayIterator(array_reverse($this->entries));
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/HistoryListener.php b/vendor/kriswallsmith/buzz/lib/Buzz/Listener/HistoryListener.php
deleted file mode 100644
index cd1e6276a7b8df25dbe2e16cd53760ed8290a21d..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/HistoryListener.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-namespace Buzz\Listener;
-
-use Buzz\Listener\History\Journal;
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-
-class HistoryListener implements ListenerInterface
-{
-    private $journal;
-    private $startTime;
-
-    public function __construct(Journal $journal)
-    {
-        $this->journal = $journal;
-    }
-
-    public function getJournal()
-    {
-        return $this->journal;
-    }
-
-    public function preSend(RequestInterface $request)
-    {
-        $this->startTime = microtime(true);
-    }
-
-    public function postSend(RequestInterface $request, MessageInterface $response)
-    {
-        $this->journal->record($request, $response, microtime(true) - $this->startTime);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/ListenerChain.php b/vendor/kriswallsmith/buzz/lib/Buzz/Listener/ListenerChain.php
deleted file mode 100644
index 85024a633ecda7bd5bd147ac43c666c79bdf2342..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/ListenerChain.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace Buzz\Listener;
-
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-
-class ListenerChain implements ListenerInterface
-{
-    private $listeners;
-
-    public function __construct(array $listeners = array())
-    {
-        $this->listeners = $listeners;
-    }
-
-    public function addListener(ListenerInterface $listener)
-    {
-        $this->listeners[] = $listener;
-    }
-
-    public function getListeners()
-    {
-        return $this->listeners;
-    }
-
-    public function preSend(RequestInterface $request)
-    {
-        foreach ($this->listeners as $listener) {
-            $listener->preSend($request);
-        }
-    }
-
-    public function postSend(RequestInterface $request, MessageInterface $response)
-    {
-        foreach ($this->listeners as $listener) {
-            $listener->postSend($request, $response);
-        }
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/ListenerInterface.php b/vendor/kriswallsmith/buzz/lib/Buzz/Listener/ListenerInterface.php
deleted file mode 100644
index 6b0815c1cc6f5eea3feb42c005bbcbcf323e786a..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/ListenerInterface.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace Buzz\Listener;
-
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-
-interface ListenerInterface
-{
-    public function preSend(RequestInterface $request);
-    public function postSend(RequestInterface $request, MessageInterface $response);
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/LoggerListener.php b/vendor/kriswallsmith/buzz/lib/Buzz/Listener/LoggerListener.php
deleted file mode 100644
index e440337273bd5e5bc8e3c60edcab98053998a73f..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Listener/LoggerListener.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Buzz\Listener;
-
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-use Buzz\Exception\InvalidArgumentException;
-
-class LoggerListener implements ListenerInterface
-{
-    private $logger;
-    private $prefix;
-    private $startTime;
-
-    public function __construct($logger, $prefix = null)
-    {
-        if (!is_callable($logger)) {
-            throw new InvalidArgumentException('The logger must be a callable.');
-        }
-
-        $this->logger = $logger;
-        $this->prefix = $prefix;
-    }
-
-    public function preSend(RequestInterface $request)
-    {
-        $this->startTime = microtime(true);
-    }
-
-    public function postSend(RequestInterface $request, MessageInterface $response)
-    {
-        $seconds = microtime(true) - $this->startTime;
-
-        call_user_func($this->logger, sprintf('%sSent "%s %s%s" in %dms', $this->prefix, $request->getMethod(), $request->getHost(), $request->getResource(), round($seconds * 1000)));
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Message/AbstractMessage.php b/vendor/kriswallsmith/buzz/lib/Buzz/Message/AbstractMessage.php
deleted file mode 100644
index b4f292c9922eb708381aba7d5ad4ab053ed2349c..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Message/AbstractMessage.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-namespace Buzz\Message;
-
-abstract class AbstractMessage implements MessageInterface
-{
-    private $headers = array();
-    private $content;
-
-    /**
-     * Returns the value of a header.
-     *
-     * @param string         $name
-     * @param string|boolean $glue Glue for implode, or false to return an array
-     *
-     * @return string|array|null
-     */
-    public function getHeader($name, $glue = "\r\n")
-    {
-        $needle = $name.':';
-
-        $values = array();
-        foreach ($this->getHeaders() as $header) {
-            if (0 === stripos($header, $needle)) {
-                $values[] = trim(substr($header, strlen($needle)));
-            }
-        }
-
-        if (false === $glue) {
-            return $values;
-        } else {
-            return count($values) ? implode($glue, $values) : null;
-        }
-    }
-
-    /**
-     * Returns a header's attributes.
-     *
-     * @param string $name A header name
-     *
-     * @return array An associative array of attributes
-     */
-    public function getHeaderAttributes($name)
-    {
-        $attributes = array();
-        foreach ($this->getHeader($name, false) as $header) {
-            if (false !== strpos($header, ';')) {
-                // remove header value
-                list(, $header) = explode(';', $header, 2);
-
-                // loop through attribute key=value pairs
-                foreach (array_map('trim', explode(';', trim($header))) as $pair) {
-                    list($key, $value) = explode('=', $pair);
-                    $attributes[$key] = $value;
-                }
-            }
-        }
-
-        return $attributes;
-    }
-
-    /**
-     * Returns the value of a particular header attribute.
-     *
-     * @param string $header    A header name
-     * @param string $attribute An attribute name
-     *
-     * @return string|null The value of the attribute or null if it isn't set
-     */
-    public function getHeaderAttribute($header, $attribute)
-    {
-        $attributes = $this->getHeaderAttributes($header);
-
-        if (isset($attributes[$attribute])) {
-            return $attributes[$attribute];
-        }
-    }
-
-    /**
-     * Returns the current message as a DOMDocument.
-     *
-     * @return \DOMDocument
-     */
-    public function toDomDocument()
-    {
-        $revert = libxml_use_internal_errors(true);
-
-        $document = new \DOMDocument('1.0', $this->getHeaderAttribute('Content-Type', 'charset') ?: 'UTF-8');
-        if (0 === strpos($this->getHeader('Content-Type'), 'text/xml')) {
-            $document->loadXML($this->getContent());
-        } else {
-            $document->loadHTML($this->getContent());
-        }
-
-        libxml_use_internal_errors($revert);
-
-        return $document;
-    }
-
-    public function setHeaders(array $headers)
-    {
-        $this->headers = $this->flattenHeaders($headers);
-    }
-
-    public function addHeader($header)
-    {
-        $this->headers[] = $header;
-    }
-
-    public function addHeaders(array $headers)
-    {
-        $this->headers = array_merge($this->headers, $this->flattenHeaders($headers));
-    }
-
-    public function getHeaders()
-    {
-        return $this->headers;
-    }
-
-    public function setContent($content)
-    {
-        $this->content = $content;
-    }
-
-    public function getContent()
-    {
-        return $this->content;
-    }
-
-    public function __toString()
-    {
-        $string = implode("\r\n", $this->getHeaders())."\r\n";
-
-        if ($content = $this->getContent()) {
-            $string .= "\r\n$content\r\n";
-        }
-
-        return $string;
-    }
-
-    protected function flattenHeaders(array $headers)
-    {
-        $flattened = array();
-        foreach ($headers as $key => $header) {
-            if (is_int($key)) {
-                $flattened[] = $header;
-            } else {
-                $flattened[] = $key.': '.$header;
-            }
-        }
-
-        return $flattened;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Factory/Factory.php b/vendor/kriswallsmith/buzz/lib/Buzz/Message/Factory/Factory.php
deleted file mode 100644
index d601dad33857c0924ffa5f7261422c604cff2107..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Factory/Factory.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace Buzz\Message\Factory;
-
-use Buzz\Message\Form\FormRequest;
-use Buzz\Message\Request;
-use Buzz\Message\RequestInterface;
-use Buzz\Message\Response;
-
-class Factory implements FactoryInterface
-{
-    public function createRequest($method = RequestInterface::METHOD_GET, $resource = '/', $host = null)
-    {
-        return new Request($method, $resource, $host);
-    }
-
-    public function createFormRequest($method = RequestInterface::METHOD_POST, $resource = '/', $host = null)
-    {
-        return new FormRequest($method, $resource, $host);
-    }
-
-    public function createResponse()
-    {
-        return new Response();
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Factory/FactoryInterface.php b/vendor/kriswallsmith/buzz/lib/Buzz/Message/Factory/FactoryInterface.php
deleted file mode 100644
index e7923d31b3a48b10b336be55a36aa9f14c589652..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Factory/FactoryInterface.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace Buzz\Message\Factory;
-
-use Buzz\Message\RequestInterface;
-
-interface FactoryInterface
-{
-    public function createRequest($method = RequestInterface::METHOD_GET, $resource = '/', $host = null);
-    public function createFormRequest($method = RequestInterface::METHOD_POST, $resource = '/', $host = null);
-    public function createResponse();
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormRequest.php b/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormRequest.php
deleted file mode 100644
index bb1e7c91703be74950c7ae6083fb0c1d76447dd4..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormRequest.php
+++ /dev/null
@@ -1,187 +0,0 @@
-<?php
-
-namespace Buzz\Message\Form;
-
-use Buzz\Message\Request;
-use Buzz\Exception\LogicException;
-
-/**
- * FormRequest.
- *
- *     $request = new FormRequest();
- *     $request->setField('user[name]', 'Kris Wallsmith');
- *     $request->setField('user[image]', new FormUpload('/path/to/image.jpg'));
- *
- * @author Marc Weistroff <marc.weistroff@sensio.com>
- * @author Kris Wallsmith <kris.wallsmith@gmail.com>
- */
-class FormRequest extends Request implements FormRequestInterface
-{
-    private $fields = array();
-    private $boundary;
-
-    /**
-     * Constructor.
-     *
-     * Defaults to POST rather than GET.
-     */
-    public function __construct($method = self::METHOD_POST, $resource = '/', $host = null)
-    {
-        parent::__construct($method, $resource, $host);
-    }
-
-    /**
-     * Sets the value of a form field.
-     *
-     * If the value is an array it will be flattened and one field value will
-     * be added for each leaf.
-     */
-    public function setField($name, $value)
-    {
-        if (is_array($value)) {
-            $this->addFields(array($name => $value));
-
-            return;
-        }
-
-        if ('[]' == substr($name, -2)) {
-            $this->fields[substr($name, 0, -2)][] = $value;
-        } else {
-            $this->fields[$name] = $value;
-        }
-    }
-
-    public function addFields(array $fields)
-    {
-        foreach ($this->flattenArray($fields) as $name => $value) {
-            $this->setField($name, $value);
-        }
-    }
-
-    public function setFields(array $fields)
-    {
-        $this->fields = array();
-        $this->addFields($fields);
-    }
-
-    public function getFields()
-    {
-        return $this->fields;
-    }
-
-    public function getResource()
-    {
-        $resource = parent::getResource();
-
-        if (!$this->isSafe() || !$this->fields) {
-            return $resource;
-        }
-
-        // append the query string
-        $resource .= false === strpos($resource, '?') ? '?' : '&';
-        $resource .= http_build_query($this->fields);
-
-        return $resource;
-    }
-
-    public function setContent($content)
-    {
-        throw new \BadMethodCallException('It is not permitted to set the content.');
-    }
-
-    public function getHeaders()
-    {
-        $headers = parent::getHeaders();
-
-        if ($this->isSafe()) {
-            return $headers;
-        }
-
-        if ($this->isMultipart()) {
-            $headers[] = 'Content-Type: multipart/form-data; boundary='.$this->getBoundary();
-        } else {
-            $headers[] = 'Content-Type: application/x-www-form-urlencoded';
-        }
-
-        return $headers;
-    }
-
-    public function getContent()
-    {
-        if ($this->isSafe()) {
-            return;
-        }
-
-        if (!$this->isMultipart()) {
-            return http_build_query($this->fields, '', '&');
-        }
-
-        $content = '';
-
-        foreach ($this->fields as $name => $values) {
-            $content .= '--'.$this->getBoundary()."\r\n";
-            if ($values instanceof FormUploadInterface) {
-                if (!$values->getFilename()) {
-                    throw new LogicException(sprintf('Form upload at "%s" does not include a filename.', $name));
-                }
-
-                $values->setName($name);
-                $content .= (string) $values;
-            } else {
-                foreach (is_array($values) ? $values : array($values) as $value) {
-                    $content .= "Content-Disposition: form-data; name=\"$name\"\r\n";
-                    $content .= "\r\n";
-                    $content .= $value."\r\n";
-                }
-            }
-        }
-
-        $content .= '--'.$this->getBoundary().'--';
-
-        return $content;
-    }
-
-    // private
-
-    private function flattenArray(array $values, $prefix = '', $format = '%s')
-    {
-        $flat = array();
-
-        foreach ($values as $name => $value) {
-            $flatName = $prefix.sprintf($format, $name);
-
-            if (is_array($value)) {
-                $flat += $this->flattenArray($value, $flatName, '[%s]');
-            } else {
-                $flat[$flatName] = $value;
-            }
-        }
-
-        return $flat;
-    }
-
-    private function isSafe()
-    {
-        return in_array($this->getMethod(), array(self::METHOD_GET, self::METHOD_HEAD));
-    }
-
-    private function isMultipart()
-    {
-        foreach ($this->fields as $name => $value) {
-            if (is_object($value) && $value instanceof FormUploadInterface) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    private function getBoundary()
-    {
-        if (!$this->boundary) {
-            $this->boundary = sha1(rand(11111, 99999).time().uniqid());
-        }
-
-        return $this->boundary;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormRequestInterface.php b/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormRequestInterface.php
deleted file mode 100644
index ed2bd49005881c639a2890a427549d44ce386c28..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormRequestInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Buzz\Message\Form;
-
-use Buzz\Message\RequestInterface;
-
-/**
- * An HTTP request message sent by a web form.
- *
- * @author Kris Wallsmith <kris.wallsmith@gmail.com>
- */
-interface FormRequestInterface extends RequestInterface
-{
-    /**
-     * Returns an array of field names and values.
-     *
-     * @return array A array of names and values
-     */
-    public function getFields();
-
-    /**
-     * Sets the form fields for the current request.
-     *
-     * @param array $fields An array of field names and values
-     */
-    public function setFields(array $fields);
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormUpload.php b/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormUpload.php
deleted file mode 100644
index 22b932b9dc1898609311bd54076f230bc14fb20a..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormUpload.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-
-namespace Buzz\Message\Form;
-
-use Buzz\Message\AbstractMessage;
-
-class FormUpload extends AbstractMessage implements FormUploadInterface
-{
-    private $name;
-    private $filename;
-    private $contentType;
-    private $file;
-
-    public function __construct($file = null, $contentType = null)
-    {
-        if ($file) {
-            $this->loadContent($file);
-        }
-
-        $this->contentType = $contentType;
-    }
-
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
-    public function getFilename()
-    {
-        if ($this->filename) {
-            return $this->filename;
-        } elseif ($this->file) {
-            return basename($this->file);
-        }
-    }
-
-    public function setFilename($filename)
-    {
-        $this->filename = $filename;
-    }
-
-    public function getContentType()
-    {
-        return $this->contentType ?: $this->detectContentType() ?: 'application/octet-stream';
-    }
-
-    public function setContentType($contentType)
-    {
-        $this->contentType = $contentType;
-    }
-
-    /**
-     * Prepends Content-Disposition and Content-Type headers.
-     */
-    public function getHeaders()
-    {
-        $headers = array('Content-Disposition: form-data');
-
-        if ($name = $this->getName()) {
-            $headers[0] .= sprintf('; name="%s"', $name);
-        }
-
-        if ($filename = $this->getFilename()) {
-            $headers[0] .= sprintf('; filename="%s"', $filename);
-        }
-
-        if ($contentType = $this->getContentType()) {
-            $headers[] = 'Content-Type: '.$contentType;
-        }
-
-        return array_merge($headers, parent::getHeaders());
-    }
-
-    /**
-     * Loads the content from a file.
-     */
-    public function loadContent($file)
-    {
-        $this->file = $file;
-
-        parent::setContent(null);
-    }
-
-    public function setContent($content)
-    {
-        parent::setContent($content);
-
-        $this->file = null;
-    }
-
-    public function getFile()
-    {
-        return $this->file;
-    }
-
-    public function getContent()
-    {
-        return $this->file ? file_get_contents($this->file) : parent::getContent();
-    }
-
-    // private
-
-    private function detectContentType()
-    {
-        if (!class_exists('finfo', false)) {
-            return false;
-        }
-
-        $finfo = new \finfo(FILEINFO_MIME_TYPE);
-
-        return $this->file ? $finfo->file($this->file) : $finfo->buffer(parent::getContent());
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormUploadInterface.php b/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormUploadInterface.php
deleted file mode 100644
index 4d6066cc43a6df79aee5f06e4535d46f954b8e3b..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Form/FormUploadInterface.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace Buzz\Message\Form;
-
-use Buzz\Message\MessageInterface;
-
-interface FormUploadInterface extends MessageInterface
-{
-    public function setName($name);
-    public function getFile();
-    public function getFilename();
-    public function getContentType();
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Message/MessageInterface.php b/vendor/kriswallsmith/buzz/lib/Buzz/Message/MessageInterface.php
deleted file mode 100644
index fc578c377897afc6d3b6783e739a360ab9de0641..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Message/MessageInterface.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-namespace Buzz\Message;
-
-/**
- * An HTTP message.
- *
- * @author Kris Wallsmith <kris.wallsmith@gmail.com>
- */
-interface MessageInterface
-{
-    /**
-     * Returns a header value.
-     *
-     * @param string         $name A header name
-     * @param string|boolean $glue Glue for implode, or false to return an array
-     *
-     * @return string|array|null The header value(s)
-     */
-    public function getHeader($name, $glue = "\r\n");
-
-    /**
-     * Returns an array of header lines.
-     *
-     * @return array An array of header lines (integer indexes, e.g. ["Header: value"])
-     */
-    public function getHeaders();
-
-    /**
-     * Sets all headers on the current message.
-     *
-     * Headers can be complete ["Header: value"] pairs or an associative array ["Header" => "value"]
-     *
-     * @param array $headers An array of header lines
-     */
-    public function setHeaders(array $headers);
-
-    /**
-     * Adds a header to this message.
-     *
-     * @param string $header A header line
-     */
-    public function addHeader($header);
-
-    /**
-     * Adds a set of headers to this message.
-     *
-     * Headers can be complete ["Header: value"] pairs or an associative array ["Header" => "value"]
-     *
-     * @param array $headers Headers
-     */
-    public function addHeaders(array $headers);
-
-    /**
-     * Returns the content of the message.
-     *
-     * @return string The message content
-     */
-    public function getContent();
-
-    /**
-     * Sets the content of the message.
-     *
-     * @param string $content The message content
-     */
-    public function setContent($content);
-
-    /**
-     * Returns the message document.
-     *
-     * @return string The message
-     */
-    public function __toString();
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Request.php b/vendor/kriswallsmith/buzz/lib/Buzz/Message/Request.php
deleted file mode 100644
index 2472b5e3fd1a6ae8ba2db3e642d32c6b6108de33..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Request.php
+++ /dev/null
@@ -1,174 +0,0 @@
-<?php
-
-namespace Buzz\Message;
-
-use Buzz\Util\Url;
-
-class Request extends AbstractMessage implements RequestInterface
-{
-    private $method;
-    private $resource;
-    private $host;
-    private $protocolVersion = 1.1;
-
-    /**
-     * Constructor.
-     *
-     * @param string $method
-     * @param string $resource
-     * @param string $host
-     */
-    public function __construct($method = self::METHOD_GET, $resource = '/', $host = null)
-    {
-        $this->method = strtoupper($method);
-        $this->resource = $resource;
-        $this->host = $host;
-    }
-
-    public function setHeaders(array $headers)
-    {
-        parent::setHeaders(array());
-
-        foreach ($this->flattenHeaders($headers) as $header) {
-            $this->addHeader($header);
-        }
-    }
-
-    public function addHeader($header)
-    {
-        if (0 === stripos(substr($header, -8), 'HTTP/1.') && 3 == count($parts = explode(' ', $header))) {
-            list($method, $resource, $protocolVersion) = $parts;
-
-            $this->setMethod($method);
-            $this->setResource($resource);
-            $this->setProtocolVersion((float) substr($protocolVersion, 5));
-        } else {
-            parent::addHeader($header);
-        }
-    }
-
-    public function setMethod($method)
-    {
-        $this->method = strtoupper($method);
-    }
-
-    public function getMethod()
-    {
-        return $this->method;
-    }
-
-    public function setResource($resource)
-    {
-        $this->resource = $resource;
-    }
-
-    public function getResource()
-    {
-        return $this->resource;
-    }
-
-    public function setHost($host)
-    {
-        $this->host = $host;
-    }
-
-    public function getHost()
-    {
-        return $this->host;
-    }
-
-    public function setProtocolVersion($protocolVersion)
-    {
-        $this->protocolVersion = $protocolVersion;
-    }
-
-    public function getProtocolVersion()
-    {
-        return $this->protocolVersion;
-    }
-
-    /**
-     * A convenience method for getting the full URL of the current request.
-     *
-     * @return string
-     */
-    public function getUrl()
-    {
-        return $this->getHost().$this->getResource();
-    }
-
-    /**
-     * A convenience method for populating the current request from a URL.
-     *
-     * @param Url|string $url An URL
-     */
-    public function fromUrl($url)
-    {
-        if (!$url instanceof Url) {
-            $url = new Url($url);
-        }
-
-        $url->applyToRequest($this);
-    }
-
-    /**
-     * Returns true if the current request is secure.
-     *
-     * @return boolean
-     */
-    public function isSecure()
-    {
-        return 'https' == parse_url($this->getHost(), PHP_URL_SCHEME);
-    }
-
-    /**
-     * Merges cookie headers on the way out.
-     */
-    public function getHeaders()
-    {
-        return $this->mergeCookieHeaders(parent::getHeaders());
-    }
-
-    /**
-     * Returns a string representation of the current request.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        $string = sprintf("%s %s HTTP/%.1f\r\n", $this->getMethod(), $this->getResource(), $this->getProtocolVersion());
-
-        if ($host = $this->getHost()) {
-            $string .= 'Host: '.$host."\r\n";
-        }
-
-        if ($parent = trim(parent::__toString())) {
-            $string .= $parent."\r\n";
-        }
-
-        return $string;
-    }
-
-    // private
-
-    private function mergeCookieHeaders(array $headers)
-    {
-        $cookieHeader = null;
-        $needle = 'Cookie:';
-
-        foreach ($headers as $i => $header) {
-            if (0 !== stripos($header, $needle)) {
-                continue;
-            }
-
-            if (null === $cookieHeader) {
-                $cookieHeader = $i;
-            } else {
-                $headers[$cookieHeader] .= '; '.trim(substr($header, strlen($needle)));
-                unset($headers[$i]);
-            }
-        }
-
-        return array_values($headers);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Message/RequestInterface.php b/vendor/kriswallsmith/buzz/lib/Buzz/Message/RequestInterface.php
deleted file mode 100644
index 883c8e4d7d9ff44e2942d3d5bc64b2604b7037af..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Message/RequestInterface.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-namespace Buzz\Message;
-
-/**
- * An HTTP request message.
- *
- * @author Kris Wallsmith <kris.wallsmith@gmail.com>
- */
-interface RequestInterface extends MessageInterface
-{
-    const METHOD_OPTIONS = 'OPTIONS';
-    const METHOD_GET     = 'GET';
-    const METHOD_HEAD    = 'HEAD';
-    const METHOD_POST    = 'POST';
-    const METHOD_PUT     = 'PUT';
-    const METHOD_DELETE  = 'DELETE';
-    const METHOD_PATCH   = 'PATCH';
-
-    /**
-     * Returns the HTTP method of the current request.
-     *
-     * @return string An HTTP method
-     */
-    public function getMethod();
-
-    /**
-     * Sets the HTTP method of the current request.
-     *
-     * @param string $method The request method
-     */
-    public function setMethod($method);
-
-    /**
-     * Returns the resource portion of the request line.
-     *
-     * @return string The resource requested
-     */
-    public function getResource();
-
-    /**
-     * Sets the resource for the current request.
-     *
-     * @param string $resource The resource being requested
-     */
-    public function setResource($resource);
-
-    /**
-     * Returns the protocol version of the current request.
-     *
-     * @return float The protocol version
-     */
-    public function getProtocolVersion();
-
-    /**
-     * Returns the value of the host header.
-     *
-     * @return string|null The host
-     */
-    public function getHost();
-
-    /**
-     * Sets the host for the current request.
-     *
-     * @param string $host The host
-     */
-    public function setHost($host);
-
-    /**
-     * Checks if the current request is secure.
-     *
-     * @return Boolean True if the request is secure
-     */
-    public function isSecure();
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Response.php b/vendor/kriswallsmith/buzz/lib/Buzz/Message/Response.php
deleted file mode 100644
index 453debda3b78446f1e4b3daa127e47ee64146686..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Message/Response.php
+++ /dev/null
@@ -1,193 +0,0 @@
-<?php
-
-namespace Buzz\Message;
-
-class Response extends AbstractMessage
-{
-    private $protocolVersion;
-    private $statusCode;
-    private $reasonPhrase;
-
-    /**
-     * Returns the protocol version of the current response.
-     *
-     * @return float
-     */
-    public function getProtocolVersion()
-    {
-        if (null === $this->protocolVersion) {
-            $this->parseStatusLine();
-        }
-
-        return $this->protocolVersion ?: null;
-    }
-
-    /**
-     * Returns the status code of the current response.
-     *
-     * @return integer
-     */
-    public function getStatusCode()
-    {
-        if (null === $this->statusCode) {
-            $this->parseStatusLine();
-        }
-
-        return $this->statusCode ?: null;
-    }
-
-    /**
-     * Returns the reason phrase for the current response.
-     *
-     * @return string
-     */
-    public function getReasonPhrase()
-    {
-        if (null === $this->reasonPhrase) {
-            $this->parseStatusLine();
-        }
-
-        return $this->reasonPhrase ?: null;
-    }
-
-    public function setHeaders(array $headers)
-    {
-        parent::setHeaders($headers);
-
-        $this->resetStatusLine();
-    }
-
-    public function addHeader($header)
-    {
-        parent::addHeader($header);
-
-        $this->resetStatusLine();
-    }
-
-    public function addHeaders(array $headers)
-    {
-        parent::addHeaders($headers);
-
-        $this->resetStatusLine();
-    }
-
-    /**
-     * Is response invalid?
-     *
-     * @return Boolean
-     */
-    public function isInvalid()
-    {
-        return $this->getStatusCode() < 100 || $this->getStatusCode() >= 600;
-    }
-
-    /**
-     * Is response informative?
-     *
-     * @return Boolean
-     */
-    public function isInformational()
-    {
-        return $this->getStatusCode() >= 100 && $this->getStatusCode() < 200;
-    }
-
-    /**
-     * Is response successful?
-     *
-     * @return Boolean
-     */
-    public function isSuccessful()
-    {
-        return $this->getStatusCode() >= 200 && $this->getStatusCode() < 300;
-    }
-
-    /**
-     * Is the response a redirect?
-     *
-     * @return Boolean
-     */
-    public function isRedirection()
-    {
-        return $this->getStatusCode() >= 300 && $this->getStatusCode() < 400;
-    }
-
-    /**
-     * Is there a client error?
-     *
-     * @return Boolean
-     */
-    public function isClientError()
-    {
-        return $this->getStatusCode() >= 400 && $this->getStatusCode() < 500;
-    }
-
-    /**
-     * Was there a server side error?
-     *
-     * @return Boolean
-     */
-    public function isServerError()
-    {
-        return $this->getStatusCode() >= 500 && $this->getStatusCode() < 600;
-    }
-
-    /**
-     * Is the response OK?
-     *
-     * @return Boolean
-     */
-    public function isOk()
-    {
-        return 200 === $this->getStatusCode();
-    }
-
-    /**
-     * Is the reponse forbidden?
-     *
-     * @return Boolean
-     */
-    public function isForbidden()
-    {
-        return 403 === $this->getStatusCode();
-    }
-
-    /**
-     * Is the response a not found error?
-     *
-     * @return Boolean
-     */
-    public function isNotFound()
-    {
-        return 404 === $this->getStatusCode();
-    }
-
-    /**
-     * Is the response empty?
-     *
-     * @return Boolean
-     */
-    public function isEmpty()
-    {
-        return in_array($this->getStatusCode(), array(201, 204, 304));
-    }
-
-    // private
-
-    private function parseStatusLine()
-    {
-        $headers = $this->getHeaders();
-
-        if (isset($headers[0]) && 3 == count($parts = explode(' ', $headers[0], 3))) {
-            $this->protocolVersion = (float) substr($parts[0], 5);
-            $this->statusCode = (integer) $parts[1];
-            $this->reasonPhrase = $parts[2];
-        } else {
-            $this->protocolVersion = $this->statusCode = $this->reasonPhrase = false;
-        }
-    }
-
-    private function resetStatusLine()
-    {
-        $this->protocolVersion = $this->statusCode = $this->reasonPhrase = null;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Util/Cookie.php b/vendor/kriswallsmith/buzz/lib/Buzz/Util/Cookie.php
deleted file mode 100644
index 21d7c12a73cfc12e987a9fe4171af669f7c696ee..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Util/Cookie.php
+++ /dev/null
@@ -1,216 +0,0 @@
-<?php
-
-namespace Buzz\Util;
-
-use Buzz\Message\RequestInterface;
-
-class Cookie
-{
-    const ATTR_DOMAIN  = 'domain';
-    const ATTR_PATH    = 'path';
-    const ATTR_SECURE  = 'secure';
-    const ATTR_MAX_AGE = 'max-age';
-    const ATTR_EXPIRES = 'expires';
-
-    protected $name;
-    protected $value;
-    protected $attributes = array();
-    protected $createdAt;
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        $this->createdAt = time();
-    }
-
-    /**
-     * Returns true if the current cookie matches the supplied request.
-     *
-     * @return boolean
-     */
-    public function matchesRequest(RequestInterface $request)
-    {
-        // domain
-        if (!$this->matchesDomain(parse_url($request->getHost(), PHP_URL_HOST))) {
-            return false;
-        }
-
-        // path
-        if (!$this->matchesPath($request->getResource())) {
-            return false;
-        }
-
-        // secure
-        if ($this->hasAttribute(static::ATTR_SECURE) && !$request->isSecure()) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Returns true of the current cookie has expired.
-     *
-     * Checks the max-age and expires attributes.
-     *
-     * @return boolean Whether the current cookie has expired
-     */
-    public function isExpired()
-    {
-        $maxAge = $this->getAttribute(static::ATTR_MAX_AGE);
-        if ($maxAge && time() - $this->getCreatedAt() > $maxAge) {
-            return true;
-        }
-
-        $expires = $this->getAttribute(static::ATTR_EXPIRES);
-        if ($expires && strtotime($expires) < time()) {
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns true if the current cookie matches the supplied domain.
-     *
-     * @param string $domain A domain hostname
-     *
-     * @return boolean
-     */
-    public function matchesDomain($domain)
-    {
-        $cookieDomain = $this->getAttribute(static::ATTR_DOMAIN);
-
-        if (0 === strpos($cookieDomain, '.')) {
-            $pattern = '/\b'.preg_quote(substr($cookieDomain, 1), '/').'$/i';
-
-            return (boolean) preg_match($pattern, $domain);
-        } else {
-            return 0 == strcasecmp($cookieDomain, $domain);
-        }
-    }
-
-    /**
-     * Returns true if the current cookie matches the supplied path.
-     *
-     * @param string $path A path
-     *
-     * @return boolean
-     */
-    public function matchesPath($path)
-    {
-        $needle = $this->getAttribute(static::ATTR_PATH);
-
-        return null === $needle || 0 === strpos($path, $needle);
-    }
-
-    /**
-     * Populates the current cookie with data from the supplied Set-Cookie header.
-     *
-     * @param string $header        A Set-Cookie header
-     * @param string $issuingDomain The domain that issued the header
-     */
-    public function fromSetCookieHeader($header, $issuingDomain)
-    {
-        list($this->name, $header)  = explode('=', $header, 2);
-        if (false === strpos($header, ';')) {
-            $this->value = $header;
-            $header = null;
-        } else {
-            list($this->value, $header) = explode(';', $header, 2);
-        }
-
-        $this->clearAttributes();
-        foreach (array_map('trim', explode(';', trim($header))) as $pair) {
-            if (false === strpos($pair, '=')) {
-                $name = $pair;
-                $value = null;
-            } else {
-                list($name, $value) = explode('=', $pair);
-            }
-
-            $this->setAttribute($name, $value);
-        }
-
-        if (!$this->getAttribute(static::ATTR_DOMAIN)) {
-            $this->setAttribute(static::ATTR_DOMAIN, $issuingDomain);
-        }
-    }
-
-    /**
-     * Formats a Cookie header for the current cookie.
-     *
-     * @return string An HTTP request Cookie header
-     */
-    public function toCookieHeader()
-    {
-        return 'Cookie: '.$this->getName().'='.$this->getValue();
-    }
-
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function setValue($value)
-    {
-        $this->value = $value;
-    }
-
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    public function setAttributes(array $attributes)
-    {
-        // attributes are case insensitive
-        $this->attributes = array_change_key_case($attributes);
-    }
-
-    public function setAttribute($name, $value)
-    {
-        $this->attributes[strtolower($name)] = $value;
-    }
-
-    public function getAttributes()
-    {
-        return $this->attributes;
-    }
-
-    public function getAttribute($name)
-    {
-        $name = strtolower($name);
-
-        if (isset($this->attributes[$name])) {
-            return $this->attributes[$name];
-        }
-    }
-
-    public function hasAttribute($name)
-    {
-        return array_key_exists($name, $this->attributes);
-    }
-
-    public function clearAttributes()
-    {
-        $this->setAttributes(array());
-    }
-
-    public function setCreatedAt($createdAt)
-    {
-        $this->createdAt = $createdAt;
-    }
-
-    public function getCreatedAt()
-    {
-        return $this->createdAt;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Util/CookieJar.php b/vendor/kriswallsmith/buzz/lib/Buzz/Util/CookieJar.php
deleted file mode 100644
index 4b6889b195e2bb11833be96c9a769cbe1861ba74..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Util/CookieJar.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-namespace Buzz\Util;
-
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-
-class CookieJar
-{
-    protected $cookies = array();
-
-    public function setCookies($cookies)
-    {
-        $this->cookies = array();
-        foreach ($cookies as $cookie) {
-            $this->addCookie($cookie);
-        }
-    }
-
-    public function getCookies()
-    {
-        return $this->cookies;
-    }
-
-    /**
-     * Adds a cookie to the current cookie jar.
-     *
-     * @param Cookie $cookie A cookie object
-     */
-    public function addCookie(Cookie $cookie)
-    {
-        $this->cookies[] = $cookie;
-    }
-
-    /**
-     * Adds Cookie headers to the supplied request.
-     *
-     * @param RequestInterface $request A request object
-     */
-    public function addCookieHeaders(RequestInterface $request)
-    {
-        foreach ($this->cookies as $cookie) {
-            if ($cookie->matchesRequest($request)) {
-                $request->addHeader($cookie->toCookieHeader());
-            }
-        }
-    }
-
-    /**
-     * Processes Set-Cookie headers from a request/response pair.
-     *
-     * @param RequestInterface $request  A request object
-     * @param MessageInterface $response A response object
-     */
-    public function processSetCookieHeaders(RequestInterface $request, MessageInterface $response)
-    {
-        foreach ($response->getHeader('Set-Cookie', false) as $header) {
-            $cookie = new Cookie();
-            $cookie->fromSetCookieHeader($header, parse_url($request->getHost(), PHP_URL_HOST));
-
-            $this->addCookie($cookie);
-        }
-    }
-
-    /**
-     * Removes expired cookies.
-     */
-    public function clearExpiredCookies()
-    {
-      foreach ($this->cookies as $i => $cookie) {
-          if ($cookie->isExpired()) {
-              unset($this->cookies[$i]);
-          }
-      }
-
-      // reset array keys
-      $this->cookies = array_values($this->cookies);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Buzz/Util/Url.php b/vendor/kriswallsmith/buzz/lib/Buzz/Util/Url.php
deleted file mode 100644
index e9be3c28b999302a47aabefa366960c0fd19207f..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Buzz/Util/Url.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-
-namespace Buzz\Util;
-
-use Buzz\Message\RequestInterface;
-use Buzz\Exception\InvalidArgumentException;
-
-class Url
-{
-    private static $defaultPorts = array(
-        'http'  => 80,
-        'https' => 443,
-    );
-
-    private $url;
-    private $components;
-
-    /**
-     * Constructor.
-     *
-     * @param string $url The URL
-     *
-     * @throws InvalidArgumentException If the URL is invalid
-     */
-    public function __construct($url)
-    {
-        $components = parse_url($url);
-
-        if (false === $components) {
-            throw new InvalidArgumentException(sprintf('The URL "%s" is invalid.', $url));
-        }
-
-        // support scheme-less URLs
-        if (!isset($components['host']) && isset($components['path'])) {
-            $pos = strpos($components['path'], '/');
-            if (false === $pos) {
-                $components['host'] = $components['path'];
-                unset($components['path']);
-            } elseif (0 !== $pos) {
-                list($host, $path) = explode('/', $components['path'], 2);
-                $components['host'] = $host;
-                $components['path'] = '/'.$path;
-            }
-        }
-
-        // default port
-        if (isset($components['scheme']) && !isset($components['port']) && isset(self::$defaultPorts[$components['scheme']])) {
-            $components['port'] = self::$defaultPorts[$components['scheme']];
-        }
-
-        $this->url = $url;
-        $this->components = $components;
-    }
-
-    public function getScheme()
-    {
-        return $this->parseUrl('scheme');
-    }
-
-    public function getHostname()
-    {
-        return $this->parseUrl('host');
-    }
-
-    public function getPort()
-    {
-        return $this->parseUrl('port');
-    }
-
-    public function getUser()
-    {
-        return $this->parseUrl('user');
-    }
-
-    public function getPassword()
-    {
-        return $this->parseUrl('pass');
-    }
-
-    public function getPath()
-    {
-        return $this->parseUrl('path');
-    }
-
-    public function getQueryString()
-    {
-        return $this->parseUrl('query');
-    }
-
-    public function getFragment()
-    {
-        return $this->parseUrl('fragment');
-    }
-
-    /**
-     * Returns a host string that combines scheme, hostname and port.
-     *
-     * @return string A host value for an HTTP message
-     */
-    public function getHost()
-    {
-        if ($hostname = $this->parseUrl('host')) {
-            $host  = $scheme = $this->parseUrl('scheme', 'http');
-            $host .= '://';
-            $host .= $hostname;
-
-            $port = $this->parseUrl('port');
-            if ($port && (!isset(self::$defaultPorts[$scheme]) || self::$defaultPorts[$scheme] != $port)) {
-                $host .= ':'.$port;
-            }
-
-            return $host;
-        }
-    }
-
-    /**
-     * Returns a resource string that combines path and query string.
-     *
-     * @return string A resource value for an HTTP message
-     */
-    public function getResource()
-    {
-        $resource = $this->parseUrl('path', '/');
-
-        if ($query = $this->parseUrl('query')) {
-            $resource .= '?'.$query;
-        }
-
-        return $resource;
-    }
-
-    /**
-     * Returns a formatted URL.
-     */
-    public function format($pattern)
-    {
-        static $map = array(
-            's' => 'getScheme',
-            'u' => 'getUser',
-            'a' => 'getPassword',
-            'h' => 'getHostname',
-            'o' => 'getPort',
-            'p' => 'getPath',
-            'q' => 'getQueryString',
-            'f' => 'getFragment',
-            'H' => 'getHost',
-            'R' => 'getResource',
-        );
-
-        $url = '';
-
-        $parts = str_split($pattern);
-        while ($part = current($parts)) {
-            if (isset($map[$part])) {
-                $method = $map[$part];
-                $url .= $this->$method();
-            } elseif ('\\' == $part) {
-                $url .= next($parts);
-            } elseif (!ctype_alpha($part)) {
-                $url .= $part;
-            } else {
-                throw new InvalidArgumentException(sprintf('The format character "%s" is invalid.', $part));
-            }
-
-            next($parts);
-        }
-
-        return $url;
-    }
-
-    /**
-     * Applies the current URL to the supplied request.
-     */
-    public function applyToRequest(RequestInterface $request)
-    {
-        $request->setResource($this->getResource());
-        $request->setHost($this->getHost());
-    }
-
-    private function parseUrl($component = null, $default = null)
-    {
-        if (null === $component) {
-            return $this->components;
-        } elseif (isset($this->components[$component])) {
-            return $this->components[$component];
-        } else {
-            return $default;
-        }
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/phpunit.xml.dist b/vendor/kriswallsmith/buzz/phpunit.xml.dist
deleted file mode 100644
index bc0103b53cacf39a1dd863d9b86b69ff9034c122..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/phpunit.xml.dist
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false" bootstrap="vendor/autoload.php" colors="true">
-    <testsuites>
-        <testsuite name="Buzz Test Suite">
-            <directory suffix="Test.php">./test/Buzz/</directory>
-        </testsuite>
-    </testsuites>
-
-    <php>
-        <!-- <server name="TEST_SERVER" value="http://localhost/buzz/test/server.php" /> -->
-        <!-- <server name="TEST_PROXY" value="localhost:3128" /> -->
-    </php>
-
-    <filter>
-        <whitelist>
-            <directory suffix=".php">./lib/Buzz/</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/BrowserTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/BrowserTest.php
deleted file mode 100644
index ad99a57ec0173007e947c4031b9a13d9dd227e43..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/BrowserTest.php
+++ /dev/null
@@ -1,182 +0,0 @@
-<?php
-
-namespace Buzz\Test;
-
-use Buzz\Browser;
-
-class BrowserTest extends \PHPUnit_Framework_TestCase
-{
-    private $client;
-    private $factory;
-    private $browser;
-
-    protected function setUp()
-    {
-        $this->client = $this->getMock('Buzz\Client\ClientInterface');
-        $this->factory = $this->getMock('Buzz\Message\Factory\FactoryInterface');
-
-        $this->browser = new Browser($this->client, $this->factory);
-    }
-
-    /**
-     * @dataProvider provideMethods
-     */
-    public function testBasicMethods($method, $content)
-    {
-        $request = $this->getMock('Buzz\Message\RequestInterface');
-        $response = $this->getMock('Buzz\Message\MessageInterface');
-        $headers = array('X-Foo: bar');
-
-        $this->factory->expects($this->once())
-            ->method('createRequest')
-            ->with(strtoupper($method))
-            ->will($this->returnValue($request));
-        $request->expects($this->once())
-            ->method('setHost')
-            ->with('http://google.com');
-        $request->expects($this->once())
-            ->method('setResource')
-            ->with('/');
-        $request->expects($this->once())
-            ->method('addHeaders')
-            ->with($headers);
-        $request->expects($this->once())
-            ->method('setContent')
-            ->with($content);
-        $this->factory->expects($this->once())
-            ->method('createResponse')
-            ->will($this->returnValue($response));
-        $this->client->expects($this->once())
-            ->method('send')
-            ->with($request, $response);
-
-        $actual = $this->browser->$method('http://google.com/', $headers, $content);
-
-        $this->assertSame($response, $actual);
-    }
-
-    public function provideMethods()
-    {
-        return array(
-            array('get',    ''),
-            array('head',   ''),
-            array('post',   'content'),
-            array('put',    'content'),
-            array('delete', 'content'),
-        );
-    }
-
-    public function testSubmit()
-    {
-        $request = $this->getMock('Buzz\Message\Form\FormRequestInterface');
-        $response = $this->getMock('Buzz\Message\MessageInterface');
-        $headers = array('X-Foo: bar');
-
-        $this->factory->expects($this->once())
-            ->method('createFormRequest')
-            ->will($this->returnValue($request));
-        $request->expects($this->once())
-            ->method('setMethod')
-            ->with('PUT');
-        $request->expects($this->once())
-            ->method('setHost')
-            ->with('http://google.com');
-        $request->expects($this->once())
-            ->method('setResource')
-            ->with('/');
-        $request->expects($this->once())
-            ->method('addHeaders')
-            ->with($headers);
-        $request->expects($this->once())
-            ->method('setFields')
-            ->with(array('foo' => 'bar', 'bar' => 'foo'));
-        $this->factory->expects($this->once())
-            ->method('createResponse')
-            ->will($this->returnValue($response));
-        $this->client->expects($this->once())
-            ->method('send')
-            ->with($request, $response);
-
-        $actual = $this->browser->submit('http://google.com', array('foo' => 'bar', 'bar' => 'foo'), 'PUT', $headers);
-
-        $this->assertSame($response, $actual);
-    }
-
-    public function testListener()
-    {
-        $listener = $this->getMock('Buzz\Listener\ListenerInterface');
-        $request = $this->getMock('Buzz\Message\RequestInterface');
-        $response = $this->getMock('Buzz\Message\MessageInterface');
-
-        $listener->expects($this->once())
-            ->method('preSend')
-            ->with($request);
-        $listener->expects($this->once())
-            ->method('postSend')
-            ->with($request, $response);
-
-        $this->browser->setListener($listener);
-        $this->assertSame($listener, $this->browser->getListener());
-
-        $this->browser->send($request, $response);
-    }
-
-    public function testLastMessages()
-    {
-        $request = $this->getMock('Buzz\Message\RequestInterface');
-        $response = $this->getMock('Buzz\Message\MessageInterface');
-
-        $this->browser->send($request, $response);
-
-        $this->assertSame($request, $this->browser->getLastRequest());
-        $this->assertSame($response, $this->browser->getLastResponse());
-    }
-
-    public function testClientMethods()
-    {
-        $client = $this->getMock('Buzz\Client\ClientInterface');
-        $this->browser->setClient($client);
-        $this->assertSame($client, $this->browser->getClient());
-    }
-
-    public function testFactoryMethods()
-    {
-        $factory = $this->getMock('Buzz\Message\Factory\FactoryInterface');
-        $this->browser->setMessageFactory($factory);
-        $this->assertSame($factory, $this->browser->getMessageFactory());
-    }
-
-    public function testAddFirstListener()
-    {
-        $listener = $this->getMock('Buzz\Listener\ListenerInterface');
-        $this->browser->addListener($listener);
-        $this->assertEquals($listener, $this->browser->getListener());
-    }
-
-    public function testAddSecondListener()
-    {
-        $listener = $this->getMock('Buzz\Listener\ListenerInterface');
-
-        $this->browser->addListener($listener);
-        $this->browser->addListener($listener);
-
-        $listenerChain = $this->browser->getListener();
-
-        $this->assertInstanceOf('Buzz\Listener\ListenerChain', $listenerChain);
-        $this->assertEquals(2, count($listenerChain->getListeners()));
-    }
-
-    public function testAddThirdListener()
-    {
-        $listener = $this->getMock('Buzz\Listener\ListenerInterface');
-
-        $this->browser->addListener($listener);
-        $this->browser->addListener($listener);
-        $this->browser->addListener($listener);
-
-        $listenerChain = $this->browser->getListener();
-
-        $this->assertInstanceOf('Buzz\Listener\ListenerChain', $listenerChain);
-        $this->assertEquals(3, count($listenerChain->getListeners()));
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Client/AbstractStreamTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Client/AbstractStreamTest.php
deleted file mode 100644
index 05ceeab88642fe68c90a6b6ae938e4dce64d264e..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Client/AbstractStreamTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace Buzz\Test\Client;
-
-use Buzz\Client\AbstractStream;
-use Buzz\Message\Request;
-use Buzz\Message\RequestInterface;
-use Buzz\Message\MessageInterface;
-
-class StreamClient extends AbstractStream
-{
-    public function send(RequestInterface $request, MessageInterface $response)
-    {
-    }
-}
-
-class AbstractStreamTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConvertsARequestToAContextArray()
-    {
-        $request = new Request('POST', '/resource/123', 'http://example.com');
-        $request->addHeader('Content-Type: application/x-www-form-urlencoded');
-        $request->addHeader('Content-Length: 15');
-        $request->setContent('foo=bar&bar=baz');
-
-        $client = new StreamClient();
-        $client->setMaxRedirects(5);
-        $client->setIgnoreErrors(false);
-        $client->setTimeout(10);
-        $expected = array(
-            'http' => array(
-                'method'           => 'POST',
-                'header'           => "Content-Type: application/x-www-form-urlencoded\r\nContent-Length: 15",
-                'content'          => 'foo=bar&bar=baz',
-                'protocol_version' => 1.1,
-                'ignore_errors'    => false,
-                'follow_location'  => true,
-                'max_redirects'    => 6,
-                'timeout'          => 10,
-            ),
-            'ssl' => array(
-                'verify_peer'      => true,
-                'verify_host' => 2,
-            ),
-        );
-
-        $this->assertEquals($expected, $client->getStreamContextArray($request));
-
-        $client->setVerifyPeer(true);
-        $expected['ssl']['verify_peer'] = true;
-        $this->assertEquals($expected, $client->getStreamContextArray($request));
-
-        $client->setMaxRedirects(0);
-        $expected['http']['follow_location'] = false;
-        $expected['http']['max_redirects'] = 1;
-        $this->assertEquals($expected, $client->getStreamContextArray($request));
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Client/ClientTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Client/ClientTest.php
deleted file mode 100644
index 5d40fad7b9f0690d73a306898533907baadd37ad..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Client/ClientTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Buzz\Test\Client;
-
-use Buzz\Message;
-
-class ClientTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provideInvalidHosts
-     */
-    public function testSendToInvalidUrl($host, $client)
-    {
-        $this->setExpectedException('Buzz\\Exception\\ClientException');
-
-        $request = new Message\Request();
-        $request->fromUrl('http://'.$host.':12345');
-
-        $response = new Message\Response();
-
-        $client = new $client();
-        $client->setTimeout(0.05);
-        $client->send($request, $response);
-    }
-
-    public function provideInvalidHosts()
-    {
-        return array(
-            array('invalid_domain', 'Buzz\\Client\\Curl'),
-            array('invalid_domain.buzz', 'Buzz\\Client\\Curl'),
-
-            array('invalid_domain', 'Buzz\\Client\\FileGetContents'),
-            array('invalid_domain.buzz', 'Buzz\\Client\\FileGetContents'),
-        );
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Client/FunctionalTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Client/FunctionalTest.php
deleted file mode 100644
index 408954cf1bde37e4e0d8c4b7adb5605139ec26d4..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Client/FunctionalTest.php
+++ /dev/null
@@ -1,287 +0,0 @@
-<?php
-
-namespace Buzz\Test\Client;
-
-use Buzz\Client\BatchClientInterface;
-use Buzz\Client\ClientInterface;
-use Buzz\Client\Curl;
-use Buzz\Client\FileGetContents;
-use Buzz\Client\MultiCurl;
-use Buzz\Message\Form\FormRequest;
-use Buzz\Message\Form\FormUpload;
-use Buzz\Message\Request;
-use Buzz\Message\RequestInterface;
-use Buzz\Message\Response;
-
-class FunctionalTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!isset($_SERVER['TEST_SERVER'])) {
-            $this->markTestSkipped('The test server is not configured.');
-        }
-    }
-
-    /**
-     * @dataProvider provideClientAndMethod
-     */
-    public function testRequestMethods($client, $method)
-    {
-        $request = new Request($method);
-        $request->fromUrl($_SERVER['TEST_SERVER']);
-        $request->setContent('test');
-        $response = $this->send($client, $request);
-
-        $data = json_decode($response->getContent(), true);
-
-        $this->assertEquals($method, $data['SERVER']['REQUEST_METHOD']);
-    }
-
-    /**
-     * @dataProvider provideClient
-     */
-    public function testGetContentType($client)
-    {
-        $request = new Request();
-        $request->fromUrl($_SERVER['TEST_SERVER']);
-        $response = $this->send($client, $request);
-
-        $data = json_decode($response->getContent(), true);
-
-        $this->assertArrayNotHasKey('CONTENT_TYPE', $data['SERVER']);
-    }
-
-    /**
-     * @dataProvider provideClient
-     */
-    public function testFormPost($client)
-    {
-        $request = new FormRequest();
-        $request->fromUrl($_SERVER['TEST_SERVER']);
-        $request->setField('company[name]', 'Google');
-        $response = $this->send($client, $request);
-
-        $data = json_decode($response->getContent(), true);
-
-        $this->assertStringStartsWith('application/x-www-form-urlencoded', $data['SERVER']['CONTENT_TYPE']);
-        $this->assertEquals('Google', $data['POST']['company']['name']);
-    }
-
-    /**
-     * @dataProvider provideClient
-     */
-    public function testFormGet($client)
-    {
-        $request = new FormRequest(FormRequest::METHOD_GET);
-        $request->fromUrl($_SERVER['TEST_SERVER']);
-        $request->setField('search[query]', 'cats');
-        $response = $this->send($client, $request);
-
-        $data = json_decode($response->getContent(), true);
-
-        $this->assertArrayNotHasKey('CONTENT_TYPE', $data['SERVER']);
-        $this->assertEquals('cats', $data['GET']['search']['query']);
-    }
-
-    /**
-     * @dataProvider provideClientAndUpload
-     */
-    public function testFileUpload($client, $upload)
-    {
-        $request = new FormRequest();
-        $request->fromUrl($_SERVER['TEST_SERVER']);
-        $request->setField('company[name]', 'Google');
-        $request->setField('company[logo]', $upload);
-        $response = $this->send($client, $request);
-
-        $data = json_decode($response->getContent(), true);
-
-        $this->assertStringStartsWith('multipart/form-data', $data['SERVER']['CONTENT_TYPE']);
-        $this->assertEquals('Google', $data['POST']['company']['name']);
-        $this->assertEquals('google.png', $data['FILES']['company']['name']['logo']);
-    }
-
-    /**
-     * @dataProvider provideClient
-     */
-    public function testJsonPayload($client)
-    {
-        $request = new Request(RequestInterface::METHOD_POST);
-        $request->fromUrl($_SERVER['TEST_SERVER']);
-        $request->addHeader('Content-Type: application/json');
-        $request->setContent(json_encode(array('foo' => 'bar')));
-        $response = $this->send($client, $request);
-
-        $data = json_decode($response->getContent(), true);
-
-        $this->assertEquals('application/json', $data['SERVER']['CONTENT_TYPE']);
-        $this->assertEquals('{"foo":"bar"}', $data['INPUT']);
-    }
-
-    /**
-     * @dataProvider provideClient
-     */
-    public function testConsecutiveRequests($client)
-    {
-        // request 1
-        $request = new Request(RequestInterface::METHOD_PUT);
-        $request->fromUrl($_SERVER['TEST_SERVER']);
-        $request->addHeader('Content-Type: application/json');
-        $request->setContent(json_encode(array('foo' => 'bar')));
-        $response = $this->send($client, $request);
-
-        $data = json_decode($response->getContent(), true);
-
-        $this->assertEquals('PUT', $data['SERVER']['REQUEST_METHOD']);
-        $this->assertEquals('application/json', $data['SERVER']['CONTENT_TYPE']);
-        $this->assertEquals('{"foo":"bar"}', $data['INPUT']);
-
-        // request 2
-        $request = new Request(RequestInterface::METHOD_GET);
-        $request->fromUrl($_SERVER['TEST_SERVER']);
-        $response = $this->send($client, $request);
-
-        $data = json_decode($response->getContent(), true);
-
-        $this->assertEquals('GET', $data['SERVER']['REQUEST_METHOD']);
-        $this->assertEmpty($data['INPUT']);
-    }
-
-    /**
-     * @dataProvider provideClient
-     */
-    public function testPlus($client)
-    {
-        $request = new FormRequest();
-        $request->fromUrl($_SERVER['TEST_SERVER']);
-        $request->setField('math', '1+1=2');
-        $response = $this->send($client, $request);
-
-        $data = json_decode($response->getContent(), true);
-        parse_str($data['INPUT'], $fields);
-
-        $this->assertEquals(array('math' => '1+1=2'), $fields);
-    }
-
-    /**
-     * @dataProvider provideClient
-     */
-    public function testRedirectedResponse($client)
-    {
-        $request = new Request();
-        $request->fromUrl($_SERVER['TEST_SERVER'].'?redirect_to='.$_SERVER['TEST_SERVER']);
-        $response = $this->send($client, $request);
-
-        $headers = $response->getHeaders();
-        $this->assertContains('200', $headers[0]);
-    }
-
-    /**
-     * @dataProvider provideClient
-     */
-    public function testProxy($client)
-    {
-        if (!isset($_SERVER['TEST_PROXY'])) {
-            $this->markTestSkipped('The proxy server is not configured.');
-        }
-
-        $client->setProxy($_SERVER['TEST_PROXY']);
-
-        $request = new Request();
-        $request->fromUrl($_SERVER['TEST_SERVER']);
-        $response = $this->send($client, $request);
-
-        $data = json_decode($response->getContent(), true);
-        $this->assertArrayHasKey('HTTP_VIA', $data['SERVER']);
-    }
-
-    /**
-     * @expectedException RuntimeException
-     * @expectedExceptionMessage Protocol pop3 not supported or disabled in libcurl
-     */
-    public function testRedirectedToForbiddenProtocol()
-    {
-        $client = new Curl();
-        $request = new Request();
-        $request->fromUrl($_SERVER['TEST_SERVER'].'?redirect_to=pop3://localhost/');
-        $response = $this->send($client, $request);
-    }
-
-    public function testMultiCurlExecutesRequestsConcurently()
-    {
-        $client = new MultiCurl();
-        $client->setTimeout(10);
-
-        $calls = array();
-        $callback = function($client, $request, $response, $options, $error) use(&$calls) {
-            $calls[] = func_get_args();
-        };
-
-        for ($i = 3; $i > 0; $i--) {
-            $request = new Request();
-            $request->fromUrl($_SERVER['TEST_SERVER'].'?delay='.$i);
-            $client->send($request, new Response(), array('callback' => $callback));
-        }
-
-        $client->flush();
-        $this->assertCount(3, $calls);
-    }
-
-    public function provideClient()
-    {
-        return array(
-            array(new Curl()),
-            array(new FileGetContents()),
-            array(new MultiCurl()),
-        );
-    }
-
-    public function provideClientAndMethod()
-    {
-        // HEAD is intentionally omitted
-        // http://stackoverflow.com/questions/2603104/does-mod-php-honor-head-requests-properly
-
-        $methods = array('GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS');
-        $clients = $this->provideClient();
-
-        $data = array();
-        foreach ($clients as $client) {
-            foreach ($methods as $method) {
-                $data[] = array($client[0], $method);
-            }
-        }
-
-        return $data;
-    }
-
-    public function provideClientAndUpload()
-    {
-        $stringUpload = new FormUpload();
-        $stringUpload->setFilename('google.png');
-        $stringUpload->setContent(file_get_contents(__DIR__.'/../Message/Fixtures/google.png'));
-
-        $uploads = array($stringUpload, new FormUpload(__DIR__.'/../Message/Fixtures/google.png'));
-        $clients = $this->provideClient();
-
-        $data = array();
-        foreach ($clients as $client) {
-            foreach ($uploads as $upload) {
-                $data[] = array($client[0], $upload);
-            }
-        }
-
-        return $data;
-    }
-
-    private function send(ClientInterface $client, RequestInterface $request)
-    {
-        $response = new Response();
-        $client->send($request, $response);
-
-        if ($client instanceof BatchClientInterface) {
-            $client->flush();
-        }
-
-        return $response;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/BasicAuthListenerTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/BasicAuthListenerTest.php
deleted file mode 100644
index c8de7a8a202a7a1ead4271ec1d51a2362f43e543..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/BasicAuthListenerTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Buzz\Test\Listener;
-
-use Buzz\Listener\BasicAuthListener;
-use Buzz\Message;
-
-class BasicAuthListenerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testBasicAuthHeader()
-    {
-        $request = new Message\Request();
-        $this->assertEmpty($request->getHeader('Authorization'));
-
-        $listener = new BasicAuthListener('foo', 'bar');
-        $listener->preSend($request);
-
-        $this->assertEquals('Basic '.base64_encode('foo:bar'), $request->getHeader('Authorization'));
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/CallbackListenerTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/CallbackListenerTest.php
deleted file mode 100644
index ae623e8e07fc36ba5daa697dd8c6de0869ec304b..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/CallbackListenerTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Buzz\Test\Listener;
-
-use Buzz\Listener\CallbackListener;
-use Buzz\Message;
-
-class CallbackListenerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCallback()
-    {
-        $calls = array();
-        $listener = new CallbackListener(function() use (& $calls) {
-            $calls[] = func_get_args();
-        });
-
-        $request = new Message\Request();
-        $response = new Message\Response();
-
-        $listener->preSend($request);
-        $listener->postSend($request, $response);
-
-        $this->assertEquals(array(
-            array($request),
-            array($request, $response),
-        ), $calls);
-    }
-
-    public function testInvalidCallback()
-    {
-        $this->setExpectedException('Buzz\Exception\InvalidArgumentException');
-        $listener = new CallbackListener(array(1, 2, 3));
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/DigestAuthListenerTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/DigestAuthListenerTest.php
deleted file mode 100644
index e227740cd69367f1368633a92668fba64783f4c7..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/DigestAuthListenerTest.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace Buzz\Test\Listener;
-
-use Buzz\Listener\DigestAuthListener;
-use Buzz\Message;
-
-class DigestAuthListenerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDigestAuthHeader()
-    {
-        $request = new Message\Request();
-        $request->setMethod('GET');
-        $request->setResource('/auth-digest');
-        $request->setHost('http://test.webdav.org');
-        $request->setProtocolVersion('1.1');
-
-        $response = new Message\Response();
-        $response->setHeaders(array(
-        	"Date: Wed, 24 Jun 2015 21:49:39 GMT",
-			"Server: Apache/2.0.54 (Debian GNU/Linux) DAV/2 SVN/1.3.2",
-			"WWW-Authenticate: Digest realm=\"test\", nonce=\"5PvRe0oZBQA=874ad6aea3519069f30dfc704e594dde6e01b2a6\", algorithm=MD5, domain=\"/auth-digest/\", qop=\"auth\"",
-			"Content-Length: 401",
-			"Content-Type: text/html; charset=iso-8859-1"
-       	));
-        $response->setContent("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">
-<html><head>
-<title>401 Authorization Required</title>
-</head><body>
-<h1>Authorization Required</h1>
-<p>This server could not verify that you
-are authorized to access the document
-requested.  Either you supplied the wrong
-credentials (e.g., bad password), or your
-browser doesn\'t understand how to supply
-the credentials required.</p>
-</body></html>");
-
-// Simulate the First Request/Response, where the server returns 401
-        $listener = new DigestAuthListener('user1', 'user1');
-        $listener->preSend($request);
-        $listener->postSend($request, $response);
-
-// Simulate sending the second Request using the calculated Authorization Header
-        $request = new Message\Request();
-        $request->setMethod('GET');
-        $request->setResource('/auth-digest');
-        $request->setHost('http://test.webdav.org');
-        $request->setProtocolVersion('1.1');
-
-        $this->assertEmpty($request->getHeader('Authorization'));
-
-        $listener->preSend($request);
-
-        $this->assertEquals(
-        	'Digest username="user1", realm="test", nonce="5PvRe0oZBQA=874ad6aea3519069f30dfc704e594dde6e01b2a6", response="b2cf05a5d3f51d84a8866309aed6cb5d", uri="/auth-digest"',
-        	$request->getHeader('Authorization')
-        );
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/History/EntryTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/History/EntryTest.php
deleted file mode 100644
index 7f9d8b94f888df1e36da8e485a4683544f92efd8..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/History/EntryTest.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace Buzz\Test\History;
-
-use Buzz\Listener\History\Entry;
-use Buzz\Message;
-
-class EntryTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDuration()
-    {
-        $entry = new Entry(new Message\Request(), new Message\Response(), 123);
-        $this->assertEquals(123, $entry->getDuration());
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/History/JournalTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/History/JournalTest.php
deleted file mode 100644
index 7b520b1f6eb4cee137d253aea21f1e04ce7c3294..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/History/JournalTest.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-
-namespace Buzz\Test\History;
-
-use Buzz\Listener\History\Journal;
-use Buzz\Message;
-
-class JournalTest extends \PHPUnit_Framework_TestCase
-{
-    protected $request1;
-    protected $request2;
-    protected $request3;
-
-    protected $response1;
-    protected $response2;
-    protected $response3;
-
-    protected function setUp()
-    {
-        $this->request1 = new Message\Request();
-        $this->request1->setContent('request1');
-        $this->request2 = new Message\Request();
-        $this->request2->setContent('request2');
-        $this->request3 = new Message\Request();
-        $this->request3->setContent('request3');
-
-        $this->response1 = new Message\Response();
-        $this->response1->setContent('response1');
-        $this->response2 = new Message\Response();
-        $this->response2->setContent('response2');
-        $this->response3 = new Message\Response();
-        $this->response3->setContent('response3');
-    }
-
-    protected function tearDown()
-    {
-        $this->request1 = null;
-        $this->request2 = null;
-        $this->request3 = null;
-
-        $this->response1 = null;
-        $this->response2 = null;
-        $this->response3 = null;
-    }
-
-    public function testRecordEnforcesLimit()
-    {
-        $journal = new Journal();
-        $journal->setLimit(2);
-
-        $journal->record($this->request1, $this->response1);
-        $journal->record($this->request2, $this->response2);
-        $journal->record($this->request3, $this->response3);
-
-        $this->assertEquals(2, count($journal));
-    }
-
-    public function testGetLastReturnsTheLastEntry()
-    {
-        $journal = new Journal();
-
-        $journal->record($this->request1, $this->response1);
-        $journal->record($this->request2, $this->response2);
-
-        $this->assertEquals($this->request2, $journal->getLast()->getRequest());
-
-        return $journal;
-    }
-
-    /**
-     * @depends testGetLastReturnsTheLastEntry
-     */
-    public function testGetLastRequestReturnsTheLastRequest(Journal $journal)
-    {
-        $this->assertEquals($this->request2, $journal->getLastRequest());
-    }
-
-    /**
-     * @depends testGetLastReturnsTheLastEntry
-     */
-    public function testGetLastResponseReturnsTheLastResponse(Journal $journal)
-    {
-        $this->assertEquals($this->response2, $journal->getLastResponse());
-    }
-
-    /**
-     * @depends testGetLastReturnsTheLastEntry
-     */
-    public function testClearRemovesEntries(Journal $journal)
-    {
-        $journal->clear();
-        $this->assertEquals(0, count($journal));
-    }
-
-    /**
-     * @depends testGetLastReturnsTheLastEntry
-     */
-    public function testForeachIteratesReversedEntries(Journal $journal)
-    {
-        $requests = array($this->request2, $this->request1);
-        $responses = array($this->response2, $this->response1);
-
-        foreach ($journal as $index => $entry) {
-            $this->assertEquals($requests[$index], $entry->getRequest());
-            $this->assertEquals($responses[$index], $entry->getResponse());
-        }
-    }
-
-    /**
-     * @depends testGetLastReturnsTheLastEntry
-     */
-    public function testDuration()
-    {
-        $journal = new Journal();
-        $journal->record($this->request1, $this->response1, 100);
-
-        $this->assertEquals($journal->getLast()->getDuration(), 100);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/HistoryListenerTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/HistoryListenerTest.php
deleted file mode 100644
index ca50521f25b0610000c7e047103fea3aa74db1bf..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/HistoryListenerTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace Buzz\Test\Listener;
-
-use Buzz\Listener\HistoryListener;
-use Buzz\Message;
-
-class HistoryListenerTest extends \PHPUnit_Framework_TestCase
-{
-    private $journal;
-    private $listener;
-
-    protected function setUp()
-    {
-        $this->journal = $this->getMockBuilder('Buzz\Listener\History\Journal')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->listener = new HistoryListener($this->journal);
-    }
-
-    public function testHistory()
-    {
-        $request = new Message\Request();
-        $response = new Message\Response();
-
-        $this->journal->expects($this->once())
-            ->method('record')
-            ->with($request, $response, $this->isType('float'));
-
-        $this->listener->preSend($request);
-        $this->listener->postSend($request, $response);
-    }
-
-    public function testGetter()
-    {
-        $this->assertSame($this->journal, $this->listener->getJournal());
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/ListenerChainTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/ListenerChainTest.php
deleted file mode 100644
index b86cdfb24607804e4f052392b8fbc1d995dc4eae..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/ListenerChainTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Buzz\Test\Listener;
-
-use Buzz\Listener\ListenerChain;
-use Buzz\Message;
-
-class ListenerChainTest extends \PHPUnit_Framework_TestCase
-{
-    public function testListeners()
-    {
-        $listener = new ListenerChain(array($this->getMock('Buzz\Listener\ListenerInterface')));
-        $this->assertEquals(1, count($listener->getListeners()));
-
-        $listener->addListener($this->getMock('Buzz\Listener\ListenerInterface'));
-        $this->assertEquals(2, count($listener->getListeners()));
-    }
-
-    public function testChain()
-    {
-        $delegate = $this->getMock('Buzz\Listener\ListenerInterface');
-        $request = new Message\Request();
-        $response = new Message\Response();
-
-        $delegate->expects($this->once())
-            ->method('preSend')
-            ->with($request);
-        $delegate->expects($this->once())
-            ->method('postSend')
-            ->with($request, $response);
-
-        $listener = new ListenerChain(array($delegate));
-        $listener->preSend($request);
-        $listener->postSend($request, $response);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/LoggerListenerTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/LoggerListenerTest.php
deleted file mode 100644
index aaa8aadfa5f73e1a2803b29b9bd5a319da539d1e..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Listener/LoggerListenerTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace Buzz\Test\Listener;
-
-use Buzz\Listener\LoggerListener;
-use Buzz\Message;
-
-class LoggerListenerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLogger()
-    {
-        $test = $this;
-        $logger = function($line) use ($test) {
-            $test->assertRegExp('~^Sent "GET http://google.com/" in \d+ms$~', $line);
-        };
-
-        $request = new Message\Request();
-        $request->fromUrl('http://google.com/');
-        $response = new Message\Response();
-
-        $listener = new LoggerListener($logger);
-        $listener->preSend($request);
-        $listener->postSend($request, $response);
-    }
-
-    public function testInvalidLogger()
-    {
-        $this->setExpectedException('Buzz\Exception\InvalidArgumentException');
-        $listener = new LoggerListener(array(1, 2, 3));
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/AbstractMessageTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/AbstractMessageTest.php
deleted file mode 100644
index a5b236a61c0512f264c81df09489e479c29c3040..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/AbstractMessageTest.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-
-namespace Buzz\Test\Message;
-
-use Buzz\Message\AbstractMessage;
-
-class Message extends AbstractMessage
-{
-}
-
-class AbstractMessageTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetHeaderGluesHeadersTogether()
-    {
-        $message = new Message();
-        $message->addHeader('X-My-Header: foo');
-        $message->addHeader('X-My-Header: bar');
-
-        $this->assertEquals('foo'."\r\n".'bar', $message->getHeader('X-My-Header'));
-        $this->assertEquals('foo,bar', $message->getHeader('X-My-Header', ','));
-        $this->assertEquals(array('foo', 'bar'), $message->getHeader('X-My-Header', false));
-    }
-
-    public function testGetHeaderReturnsNullIfHeaderDoesNotExist()
-    {
-        $message = new Message();
-
-        $this->assertNull($message->getHeader('X-Nonexistant'));
-    }
-
-    public function testGetHeaderIsCaseInsensitive()
-    {
-        $message = new Message();
-        $message->addHeader('X-zomg: test');
-
-        $this->assertEquals('test', $message->getHeader('X-ZOMG'));
-    }
-
-    public function testToStringFormatsTheMessage()
-    {
-        $message = new Message();
-        $message->addHeader('Foo: Bar');
-        $message->setContent('==CONTENT==');
-
-        $expected = "Foo: Bar\r\n\r\n==CONTENT==\r\n";
-
-        $this->assertEquals($expected, (string) $message);
-    }
-
-    public function testGetHeaderAttributesReturnsHeaderAttributes()
-    {
-        $message = new Message();
-        $message->addHeader('Content-Type: text/xml; charset=utf8');
-
-        $this->assertEquals('utf8', $message->getHeaderAttribute('Content-Type', 'charset'));
-    }
-
-    public function testGetNotFoundHeaderAttribute()
-    {
-        $message = new Message();
-        $this->assertNull($message->getHeaderAttribute('Content-Type', 'charset'));
-    }
-
-    public function testAddHeaders()
-    {
-        $message = new Message();
-        $message->addHeaders(array('Content-Type: text/xml; charset=utf8', 'Foo' => 'test'));
-        $message->addHeaders(array('Test' => 'foo', 'Foo' => 'test'));
-
-        $expected = array('Content-Type: text/xml; charset=utf8', 'Foo: test', 'Test: foo', 'Foo: test');
-        $this->assertEquals($expected, $message->getHeaders());
-    }
-
-    public function testSetHeaders()
-    {
-        $message = new Message();
-        $message->setHeaders(array('Content-Type: text/xml; charset=utf8', 'Foo' => 'test'));
-        $message->setHeaders(array('Test: foo', 'Foo' => 'test'));
-
-        $expected = array('Test: foo', 'Foo: test');
-        $this->assertEquals($expected, $message->getHeaders());
-    }
-
-    public function testToDomDocumentWithContentTypeTextXmlReturnsDomDocument()
-    {
-        $message = new Message();
-
-        $message->setHeaders(array('Content-Type: text/xml'));
-        $message->setContent('<foo><bar></bar></foo>');
-        $this->assertInstanceOf('DOMDocument', $message->toDomDocument());
-    }
-
-    public function testToDomDocumentWithContentTypeTextHtmlReturnsDomDocument()
-    {
-        $message = new Message();
-
-        $message->setHeaders(array('Content-Type: text/html'));
-        $message->setContent('<foo><bar></bar></foo>');
-        $this->assertInstanceOf('DOMDocument', $message->toDomDocument());
-    }
-
-    public function testToDomDocumentWithContentTypeTextXmlReturnsXmlString()
-    {
-        $message = new Message();
-        $expected = <<<XML
-<?xml version="1.0"?>
-<foo><bar/></foo>
-
-XML;
-
-        $message->setHeaders(array('Content-Type: text/xml'));
-        $message->setContent('<foo><bar></bar></foo>');
-        $this->assertEquals($expected, $message->toDomDocument()->saveXML());
-    }
-
-    public function testToDomDocumentWithContentTypeTextHTMLReturnsHTMLString()
-    {
-        $message = new Message();
-        $expected = <<<HTML
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
-<html><body><foo><bar></bar></foo></body></html>
-
-HTML;
-
-        $message->setHeaders(array('Content-Type: text/html'));
-        $message->setContent('<foo><bar></bar></foo>');
-        $this->assertEquals($expected, $message->toDomDocument()->saveHTML());
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/FactoryTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/FactoryTest.php
deleted file mode 100644
index d4bd9c653e3aaa98f0b27c52a673f1264773dd2c..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/FactoryTest.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace Buzz\Test\Message;
-
-use Buzz\Message\Factory\Factory;
-use Buzz\Message\Request;
-use Buzz\Message\RequestInterface;
-
-class FactoryTest extends \PHPUnit_Framework_TestCase
-{
-    private $factory;
-
-    protected function setUp()
-    {
-        $this->factory = new Factory();
-    }
-
-    public function testCreateRequestDefaults()
-    {
-        $request = $this->factory->createRequest();
-
-        $this->assertInstanceOf('Buzz\Message\Request', $request);
-        $this->assertEquals(RequestInterface::METHOD_GET, $request->getMethod());
-        $this->assertEquals('/', $request->getResource());
-        $this->assertNull($request->getHost());
-    }
-
-    public function testCreateRequestArguments()
-    {
-        $request = $this->factory->createRequest(RequestInterface::METHOD_POST, '/foo', 'http://example.com');
-
-        $this->assertEquals(RequestInterface::METHOD_POST, $request->getMethod());
-        $this->assertEquals('/foo', $request->getResource());
-        $this->assertEquals('http://example.com', $request->getHost());
-    }
-
-    public function testCreateFormRequestDefaults()
-    {
-        $request = $this->factory->createFormRequest();
-
-        $this->assertInstanceOf('Buzz\Message\Form\FormRequest', $request);
-        $this->assertEquals(RequestInterface::METHOD_POST, $request->getMethod());
-        $this->assertEquals('/', $request->getResource());
-        $this->assertNull($request->getHost());
-    }
-
-    public function testCreateFormRequestArguments()
-    {
-        $request = $this->factory->createFormRequest(RequestInterface::METHOD_PUT, '/foo', 'http://example.com');
-
-        $this->assertInstanceOf('Buzz\Message\Form\FormRequest', $request);
-        $this->assertEquals(RequestInterface::METHOD_PUT, $request->getMethod());
-        $this->assertEquals('/foo', $request->getResource());
-        $this->assertEquals('http://example.com', $request->getHost());
-    }
-
-    public function testCreateResponse()
-    {
-        $this->assertInstanceOf('Buzz\Message\Response', $this->factory->createResponse());
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/Fixtures/google.png b/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/Fixtures/google.png
deleted file mode 100644
index 99b37d55bf77f370d0f0743deb3e8cb22fed16a3..0000000000000000000000000000000000000000
Binary files a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/Fixtures/google.png and /dev/null differ
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/FormRequestTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/FormRequestTest.php
deleted file mode 100644
index e8bac61c94defed8cec5133ae884f40029642a99..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/FormRequestTest.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-
-namespace Buzz\Test\Message;
-
-use Buzz\Message\Form\FormRequest;
-use Buzz\Message\Form\FormUpload;
-
-/**
- * FormRequestTest
- *
- * @author Marc Weistroff <marc.weistroff@sensio.com>
- */
-class FormRequestTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetContentGeneratesContent()
-    {
-        $message = new FormRequest();
-        $message->setField('foo', 'bar');
-        $message->setField('bar', 'foo');
-
-        $expected = "foo=bar&bar=foo";
-        $this->assertEquals($expected, $message->getContent());
-    }
-
-    public function testGetContentGeneratesContentWithCustomArgSeparatorOutput()
-    {
-
-        $argSeparatorOutput = ini_get('arg_separator.output');
-        ini_set('arg_separator.output', '&amp;');
-
-        $message = new FormRequest();
-        $message->setField('foo', 'bar');
-        $message->setField('bar', 'foo');
-
-        $expected = "foo=bar&bar=foo";
-        $this->assertEquals($expected, $message->getContent());
-
-        ini_set('arg_separator.output', $argSeparatorOutput);
-    }
-
-
-    public function testAddDataAddsData()
-    {
-        $message = new FormRequest();
-        $message->setField('foo', 'bar');
-
-        $this->assertEquals(array('foo' => 'bar'), $message->getFields());
-    }
-
-    /**
-     * @expectedException \BadMethodCallException
-     */
-    public function testSetContentIsNotPermitted()
-    {
-        $message = new FormRequest();
-        $message->setContent('foobar');
-    }
-
-    public function testSetFields()
-    {
-        $request = new FormRequest();
-        $request->setFields(array('foo' => 'bar'));
-        $this->assertEquals(array('foo' => 'bar'), $request->getFields());
-    }
-
-    public function testContentType()
-    {
-        $request = new FormRequest();
-        $this->assertEquals('application/x-www-form-urlencoded', $request->getHeader('Content-Type'));
-    }
-
-    public function testDeepArray()
-    {
-        $request = new FormRequest();
-        $request->setField('person', array('fname' => 'John', 'lname' => 'Doe'));
-
-        $this->assertEquals('person%5Bfname%5D=John&person%5Blname%5D=Doe', $request->getContent());
-    }
-
-    public function testFieldPush()
-    {
-        $request = new FormRequest();
-        $request->setField('colors[]', 'red');
-        $request->setField('colors[]', 'blue');
-
-        $this->assertEquals('colors%5B0%5D=red&colors%5B1%5D=blue', $request->getContent());
-    }
-
-    public function testMultipartHeaders()
-    {
-        $request = new FormRequest();
-        $request->setField('foo', array('bar' => new FormUpload()));
-
-        $headers = $request->getHeaders();
-
-        $this->assertStringStartsWith('Content-Type: multipart/form-data; boundary=', $headers[0]);
-    }
-
-    public function testMultipartContent()
-    {
-        $upload = new FormUpload();
-        $upload->setFilename('image.jpg');
-        $upload->setContent('foobar');
-
-        $request = new FormRequest();
-        $request->setField('user[name]', 'Kris');
-        $request->setField('user[image]', $upload);
-
-        $content = $request->getContent();
-
-        $this->assertContains("Content-Disposition: form-data; name=\"user[name]\"\r\n\r\nKris\r\n", $content);
-        $this->assertContains("Content-Disposition: form-data; name=\"user[image]\"; filename=\"image.jpg\"\r\nContent-Type: text/plain\r\n\r\nfoobar\r\n", $content);
-    }
-
-    public function testFilenamelessUpload()
-    {
-        $this->setExpectedException('LogicException');
-
-        $upload = new FormUpload();
-        $upload->setContent('foobar');
-
-        $request = new FormRequest();
-        $request->setField('user[name]', 'Kris');
-        $request->setField('user[image]', $upload);
-
-        $content = $request->getContent();
-    }
-
-    public function testGetRequest()
-    {
-        $request = new FormRequest(FormRequest::METHOD_GET, '/search');
-        $request->setField('q', 'cats');
-
-        $this->assertEquals('/search?q=cats', $request->getResource());
-        $this->assertEmpty($request->getContent());
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/FormUploadTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/FormUploadTest.php
deleted file mode 100644
index eab61baf9a66e8d95a26f503f863568a3eea4744..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/FormUploadTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-namespace Buzz\Test\Message;
-
-use Buzz\Message\Form\FormUpload;
-
-class FormUploadTest extends \PHPUnit_Framework_TestCase
-{
-    public function testStringContent()
-    {
-        $upload = new FormUpload();
-        $upload->setName('company[logo]');
-        $upload->setFilename('google.png');
-        $upload->setContent(file_get_contents(__DIR__.'/Fixtures/google.png'));
-
-        $this->assertEquals(array(
-            'Content-Disposition: form-data; name="company[logo]"; filename="google.png"',
-            'Content-Type: image/png',
-        ), $upload->getHeaders());
-    }
-
-    public function testFileContent()
-    {
-        $upload = new FormUpload(__DIR__.'/Fixtures/google.png');
-        $upload->setName('company[logo]');
-
-        $this->assertEquals(array(
-            'Content-Disposition: form-data; name="company[logo]"; filename="google.png"',
-            'Content-Type: image/png',
-        ), $upload->getHeaders());
-    }
-
-    public function testContentType()
-    {
-        $upload = new FormUpload(__DIR__.'/Fixtures/google.png');
-        $upload->setName('company[logo]');
-        $upload->setContentType('foo/bar');
-
-        $this->assertEquals(array(
-            'Content-Disposition: form-data; name="company[logo]"; filename="google.png"',
-            'Content-Type: foo/bar',
-        ), $upload->getHeaders());
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/RequestTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/RequestTest.php
deleted file mode 100644
index 31920fd6134875e0032a1ebffae687cb36dc301c..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/RequestTest.php
+++ /dev/null
@@ -1,141 +0,0 @@
-<?php
-
-namespace Buzz\Test\Message;
-
-use Buzz\Message\Request;
-
-class RequestTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructorSetsMethodResourceAndHost()
-    {
-        $request = new Request('HEAD', '/resource/123', 'http://example.com');
-
-        $this->assertEquals('HEAD', $request->getMethod());
-        $this->assertEquals('/resource/123', $request->getResource());
-        $this->assertEquals('http://example.com', $request->getHost());
-    }
-
-    public function testGetUrlFormatsAUrl()
-    {
-        $request = new Request();
-        $request->setHost('http://example.com');
-        $request->setResource('/resource/123');
-
-        $this->assertEquals('http://example.com/resource/123', $request->getUrl());
-    }
-
-    public function testFromUrlSetsRequestValues()
-    {
-        $request = new Request();
-        $request->fromUrl('http://example.com/resource/123?foo=bar#foobar');
-
-        $this->assertEquals('http://example.com', $request->getHost());
-        $this->assertEquals('/resource/123?foo=bar', $request->getResource());
-    }
-
-    public function testFromUrlSetsADefaultResource()
-    {
-        $request = new Request();
-        $request->fromUrl('http://example.com');
-
-        $this->assertEquals('/', $request->getResource());
-
-        $request = new Request();
-        $request->fromUrl('http://example.com?foo=bar');
-
-        $this->assertEquals('/?foo=bar', $request->getResource());
-    }
-
-    public function testFromUrlSetsADefaultScheme()
-    {
-        $request = new Request();
-        $request->fromUrl('example.com/foo/bar');
-
-        $this->assertEquals('http://example.com', $request->getHost());
-        $this->assertEquals('/foo/bar', $request->getResource());
-    }
-
-    public function testFromUrlLeaveHostEmptyIfNoneIsProvided()
-    {
-        $request = new Request();
-        $request->fromUrl('/foo');
-
-        $this->assertNull($request->getHost());
-    }
-
-    public function testFromUrlAcceptsPort()
-    {
-        $request = new Request();
-        $request->fromUrl('http://localhost:3000/foo');
-
-        $this->assertEquals('http://localhost:3000', $request->getHost());
-        $this->assertEquals('/foo', $request->getResource());
-    }
-
-    public function testFromUrlRejectsInvalidUrl()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-
-        // port number is too high
-        $request = new Request();
-        $request->fromUrl('http://localhost:123456');
-    }
-
-    public function testIsSecureChecksScheme()
-    {
-        $request = new Request('GET', '/resource/123', 'http://example.com');
-        $this->assertFalse($request->isSecure());
-
-        $request = new Request('GET', '/resource/123', 'https://example.com');
-        $this->assertTrue($request->isSecure());
-    }
-
-    public function testToStringFormatsTheRequest()
-    {
-        $request = new Request('POST', '/resource/123', 'http://example.com');
-        $request->setProtocolVersion(1.1);
-        $request->addHeader('Content-Type: application/x-www-form-urlencoded');
-        $request->setContent('foo=bar&bar=baz');
-
-        $expected  = "POST /resource/123 HTTP/1.1\r\n";
-        $expected .= "Host: http://example.com\r\n";
-        $expected .= "Content-Type: application/x-www-form-urlencoded\r\n";
-        $expected .= "\r\n";
-        $expected .= "foo=bar&bar=baz\r\n";
-
-        $this->assertEquals($expected, (string) $request);
-    }
-
-    public function testMethodIsAlwaysUppercased()
-    {
-        $request = new Request('post', '/resource/123', 'http://example.com');
-
-        $this->assertEquals('POST', $request->getMethod());
-    }
-
-    public function testSetMethod()
-    {
-        $request = new Request();
-        $request->setMethod('get');
-        $this->assertEquals('GET', $request->getMethod());
-    }
-
-    public function testCookieMerge()
-    {
-        $request = new Request();
-        $request->addHeader('Cookie: foo=bar');
-        $request->addHeader('Content-Type: text/plain');
-        $request->addHeader('Cookie: bar=foo');
-
-        $this->assertEquals(array(
-            'Cookie: foo=bar; bar=foo',
-            'Content-Type: text/plain',
-        ), $request->getHeaders());
-
-        $expected  = "GET / HTTP/1.1\r\n";
-        $expected .= "Cookie: foo=bar; bar=foo\r\n";
-        $expected .= "Content-Type: text/plain\r\n";
-
-        $this->assertEquals($expected, (string) $request);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/ResponseTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/ResponseTest.php
deleted file mode 100644
index dccda3910efd6009885417b300e72e9ebcdeeffe..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Message/ResponseTest.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-namespace Buzz\Test\Message;
-
-use Buzz\Message\Response;
-
-class ResponseTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetProtocolVersionReturnsTheProtocolVersion()
-    {
-        $response = new Response();
-
-        $this->assertNull($response->getProtocolVersion());
-
-        $response->addHeader('HTTP/1.0 200 OK');
-
-        $this->assertEquals(1.0, $response->getProtocolVersion());
-    }
-
-    public function testGetStatusCodeReturnsTheStatusCode()
-    {
-        $response = new Response();
-
-        $this->assertNull($response->getStatusCode());
-
-        $response->addHeader('HTTP/1.0 200 OK');
-
-        $this->assertEquals(200, $response->getStatusCode());
-    }
-
-    public function testGetReasonPhraseReturnsTheReasonPhrase()
-    {
-        $response = new Response();
-
-        $this->assertEquals($response->getReasonPhrase(), null);
-
-        $response->addHeader('HTTP/1.0 200 OK');
-
-        $this->assertEquals('OK', $response->getReasonPhrase());
-    }
-
-    public function testGetReasonPhraseReturnsAMultiwordReasonPhrase()
-    {
-        $response = new Response();
-
-        $this->assertNull($response->getReasonPhrase());
-
-        $response->addHeader('HTTP/1.0 500 Internal Server Error');
-
-        $this->assertEquals('Internal Server Error', $response->getReasonPhrase());
-    }
-
-    public function testAddHeadersResetsStatusLine()
-    {
-        $response = new Response();
-        $this->assertNull($response->getStatusCode());
-        $response->addHeaders(array('HTTP/1.0 200 OK'));
-        $this->assertEquals(200, $response->getStatusCode());
-    }
-
-    /**
-     * @dataProvider statusProvider
-     *
-     *
-     */
-    public function testIssers($code, $method, $expected)
-    {
-        $response = new Response();
-        $response->addHeaders(array('HTTP/1.0 '.$code.' Status'));
-        $this->assertEquals($expected, $response->{$method}());
-    }
-
-    public function statusProvider()
-    {
-        return array(
-            array(50, 'isInvalid', true),
-            array(700, 'isInvalid', true),
-            array(100, 'isInvalid', false),
-
-            array(100, 'isInformational', true),
-            array(199, 'isInformational', true),
-            array(200, 'isInformational', false),
-
-            array(200, 'isSuccessful', true),
-            array(299, 'isSuccessful', true),
-            array(300, 'isSuccessful', false),
-
-            array(301, 'isRedirection', true),
-            array(302, 'isRedirection', true),
-            array(400, 'isRedirection', false),
-
-            array(404, 'isClientError', true),
-            array(401, 'isClientError', true),
-            array(500, 'isClientError', false),
-
-            array(500, 'isServerError', true),
-            array(400, 'isServerError', false),
-
-            array(200, 'isOk', true),
-            array(201, 'isOk', false),
-
-            array(403, 'isForbidden', true),
-            array(404, 'isForbidden', false),
-
-            array(404, 'isNotFound', true),
-            array(403, 'isNotFound', false),
-
-            array(201, 'isEmpty', true),
-            array(204, 'isEmpty', true),
-            array(304, 'isEmpty', true),
-            array(203, 'isEmpty', false),
-        );
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Util/CookieJarTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Util/CookieJarTest.php
deleted file mode 100644
index b4ce9761edccb0b2f4ef024123e48e4a60755d07..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Util/CookieJarTest.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-namespace Buzz\Test\Cookie;
-
-use Buzz\Util\Cookie;
-use Buzz\Util\CookieJar;
-use Buzz\Message;
-
-class CookieJarTest extends \PHPUnit_Framework_TestCase
-{
-    public function testProcessSetCookieHeadersSetsCookies()
-    {
-        $request = new Message\Request();
-        $request->setHost('http://www.example.com');
-
-        $response = new Message\Response();
-        $response->addHeader('Set-Cookie: SESSION2=qwerty');
-        $response->addHeader('Set-Cookie: SESSION1=asdf');
-
-        $jar = new CookieJar();
-        $jar->processSetCookieHeaders($request, $response);
-
-        $cookies = $jar->getCookies();
-
-        $this->assertEquals(2, count($cookies));
-        foreach ($cookies as $cookie) {
-            $this->assertEquals('www.example.com', $cookie->getAttribute(Cookie::ATTR_DOMAIN));
-            $this->assertTrue(in_array($cookie->getName(), array('SESSION1', 'SESSION2')));
-        }
-    }
-
-    public function testAddCookieHeadersAddsCookieHeaders()
-    {
-        $request = new Message\Request();
-        $request->setHost('http://www.example.com');
-
-        $cookie = new Cookie();
-        $cookie->setName('SESSION');
-        $cookie->setValue('asdf');
-        $cookie->setAttribute(Cookie::ATTR_DOMAIN, '.example.com');
-
-        $jar = new CookieJar();
-        $jar->setCookies(array($cookie));
-        $jar->addCookieHeaders($request);
-
-        $this->assertEquals('SESSION=asdf', $request->getHeader('Cookie'));
-    }
-
-    public function testClearExpiredCookiesRemovesExpiredCookies()
-    {
-        $cookie = new Cookie();
-        $cookie->setName('SESSION');
-        $cookie->setValue('asdf');
-        $cookie->setAttribute(Cookie::ATTR_EXPIRES, 'Fri, 01-Dec-1999 00:00:00 GMT');
-
-        $jar = new CookieJar();
-        $jar->addCookie($cookie);
-        $jar->clearExpiredCookies();
-
-        $this->assertEquals(0, count($jar->getCookies()));
-
-        $cookie = new Cookie();
-        $cookie->setName('SESSION');
-        $cookie->setValue('asdf');
-        $cookie->setAttribute(Cookie::ATTR_MAX_AGE, '-60');
-
-        $jar = new CookieJar();
-        $jar->addCookie($cookie);
-        $jar->clearExpiredCookies();
-
-        $this->assertEquals(0, count($jar->getCookies()));
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Util/CookieTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Util/CookieTest.php
deleted file mode 100644
index 6efe9fdada141a803af682af7c59cada9c8cfe05..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Util/CookieTest.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-
-namespace Buzz\Test\Cookie;
-
-use Buzz\Util\Cookie;
-use Buzz\Message;
-
-class CookieTest extends \PHPUnit_Framework_TestCase
-{
-    public function testFromSetCookieHeaderSetsCookieAttributes()
-    {
-        $cookie = new Cookie();
-        $cookie->fromSetCookieHeader('SESSION=asdf; expires='.date('r', strtotime('2000-01-01 00:00:00')).'; path=/; domain=.example.com; secure', 'www.example.com');
-
-        $this->assertEquals('SESSION', $cookie->getName());
-        $this->assertEquals('asdf', $cookie->getValue());
-        $this->assertEquals(array(
-            'expires' => date('r', strtotime('2000-01-01 00:00:00')),
-            'path'    => '/',
-            'domain'  => '.example.com',
-            'secure'  => null,
-        ), $cookie->getAttributes());
-    }
-
-    public function testFromSetCookieHeaderFallsBackToIssuingDomain()
-    {
-        $cookie = new Cookie();
-        $cookie->fromSetCookieHeader('SESSION=asdf', 'example.com');
-
-        $this->assertEquals('example.com', $cookie->getAttribute(Cookie::ATTR_DOMAIN));
-    }
-
-    public function testToCookieHeaderFormatsACookieHeader()
-    {
-        $cookie = new Cookie();
-        $cookie->setName('SESSION');
-        $cookie->setValue('asdf');
-
-        $this->assertEquals('Cookie: SESSION=asdf', $cookie->toCookieHeader());
-    }
-
-    public function testMatchesDomainMatchesSimpleDomains()
-    {
-        $cookie = new Cookie();
-        $cookie->setAttribute('domain', 'nytimes.com');
-
-        $this->assertTrue($cookie->matchesDomain('nytimes.com'));
-        $this->assertFalse($cookie->matchesDomain('google.com'));
-    }
-
-    public function testMatchesDomainMatchesSubdomains()
-    {
-        $cookie = new Cookie();
-        $cookie->setAttribute('domain', '.nytimes.com');
-
-        $this->assertTrue($cookie->matchesDomain('nytimes.com'));
-        $this->assertTrue($cookie->matchesDomain('blogs.nytimes.com'));
-        $this->assertFalse($cookie->matchesDomain('google.com'));
-    }
-
-    public function testIsExpiredChecksMaxAge()
-    {
-        $cookie = new Cookie();
-        $cookie->setAttribute('max-age', 60);
-
-        $this->assertFalse($cookie->isExpired());
-
-        $cookie = new Cookie();
-        $cookie->setCreatedAt(strtotime('-1 hour'));
-        $cookie->setAttribute('max-age', 60);
-
-        $this->assertTrue($cookie->isExpired());
-    }
-
-    public function testIsExpiredChecksExpires()
-    {
-        $cookie = new Cookie();
-        $cookie->setAttribute('expires', date('r', strtotime('+1 week')));
-
-        $this->assertFalse($cookie->isExpired());
-
-        $cookie = new Cookie();
-        $cookie->setAttribute('expires', date('r', strtotime('-1 month')));
-
-        $this->assertTrue($cookie->isExpired());
-    }
-
-    public function testMatchesPathChecksPath()
-    {
-        $cookie = new Cookie();
-        $cookie->setAttribute('path', '/resource');
-
-        $this->assertTrue($cookie->matchesPath('/resource/123'));
-        $this->assertFalse($cookie->matchesPath('/login'));
-
-        $cookie = new Cookie();
-        $this->assertTrue($cookie->matchesPath('/resource/123'));
-    }
-
-    public function testMatchesRequestChecksDomain()
-    {
-        $request = new Message\Request();
-        $request->setHost('http://example.com');
-
-        $cookie = new Cookie();
-        $cookie->setAttribute(Cookie::ATTR_DOMAIN, 'example.com');
-
-        $this->assertTrue($cookie->matchesRequest($request));
-
-        $cookie = new Cookie();
-        $cookie->setAttribute(Cookie::ATTR_DOMAIN, 'foo.com');
-
-        $this->assertFalse($cookie->matchesRequest($request));
-    }
-
-    public function testMatchesRequestChecksPath()
-    {
-        $request = new Message\Request();
-        $request->setHost('http://example.com');
-        $request->setResource('/foo/bar');
-
-        $cookie = new Cookie();
-        $cookie->setAttribute(Cookie::ATTR_DOMAIN, 'example.com');
-        $cookie->setAttribute(Cookie::ATTR_PATH, '/foo');
-
-        $this->assertTrue($cookie->matchesRequest($request));
-
-        $cookie = new Cookie();
-        $cookie->setAttribute(Cookie::ATTR_DOMAIN, 'example.com');
-        $cookie->setAttribute(Cookie::ATTR_PATH, '/foo/bar/baz');
-
-        $this->assertFalse($cookie->matchesRequest($request));
-    }
-
-    public function testMatchesRequestChecksSecureAttribute()
-    {
-        $request = new Message\Request();
-        $request->setHost('https://example.com');
-
-        $cookie = new Cookie();
-        $cookie->setAttribute(Cookie::ATTR_DOMAIN, 'example.com');
-        $cookie->setAttribute(Cookie::ATTR_SECURE, null);
-
-        $this->assertTrue($cookie->matchesRequest($request));
-
-        $request = new Message\Request();
-        $request->setHost('http://example.com');
-
-        $this->assertFalse($cookie->matchesRequest($request));
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/Buzz/Test/Util/UrlTest.php b/vendor/kriswallsmith/buzz/test/Buzz/Test/Util/UrlTest.php
deleted file mode 100644
index 7d1f704bf48c96cfa77c6304739a0ef2bfe204c7..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/Buzz/Test/Util/UrlTest.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-namespace Buzz\Test\Util;
-
-use Buzz\Util\Url;
-
-class UrlTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provideUrlAndHost
-     */
-    public function testGetHost($urlStr, $host, $resource)
-    {
-        $url = new Url($urlStr);
-        $this->assertEquals($host, $url->getHost());
-        $this->assertEquals($resource, $url->getResource());
-    }
-
-    public function provideUrlAndHost()
-    {
-        return array(
-            array('https://example.com/resource/123?foo=bar#foobar', 'https://example.com', '/resource/123?foo=bar'),
-            array('http://example.com', 'http://example.com', '/'),
-            array('http://example.com?foo=bar', 'http://example.com', '/?foo=bar'),
-            array('example.com/foo/bar', 'http://example.com', '/foo/bar'),
-            array('/foo', null, '/foo'),
-            array('http://localhost:3000/foo', 'http://localhost:3000', '/foo'),
-        );
-    }
-
-    public function testInvalidUrl()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        new Url('http://localhost:123456');
-    }
-
-    /**
-     * @dataProvider providePattern
-     */
-    public function testFormat($input, $pattern, $expected)
-    {
-        $url = new Url($input);
-        $this->assertEquals($expected, $url->format($pattern));
-    }
-
-    public function providePattern()
-    {
-        $full = 'http://foo:bar@example.com:123/asdf?tweedle=dee#dum';
-        $host = 'example.com';
-
-        return array(
-            array($full, 's://u:a@h:op?q#f', 'http://foo:bar@example.com:123/asdf?tweedle=dee#dum'),
-            array($full, 'HR', 'http://example.com:123/asdf?tweedle=dee'),
-            array($host, 'HR', 'http://example.com/'),
-        );
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/etc/nginx.conf b/vendor/kriswallsmith/buzz/test/etc/nginx.conf
deleted file mode 100644
index 8c1a4c288e0d07cd45ded66362365602b791e54d..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/etc/nginx.conf
+++ /dev/null
@@ -1,49 +0,0 @@
-events {
-    worker_connections 1024;
-}
-
-http {
-    keepalive_timeout  65;
-
-    fastcgi_connect_timeout 60;
-    fastcgi_send_timeout 180;
-    fastcgi_read_timeout 180;
-    fastcgi_buffer_size 32k;
-    fastcgi_buffers 16 16k;
-    fastcgi_intercept_errors on;
-
-    upstream php {
-        server 127.0.0.1:9000;
-    }
-
-    access_log /var/log/nginx/access.log;
-    error_log /var/log/nginx/error.log;
-
-    server {
-        listen 8080 default_server;
-        server_name .localhost;
-
-        charset utf-8;
-
-        root .;
-
-        location ~ \.php$ {
-            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
-
-            fastcgi_param  QUERY_STRING       $query_string;
-            fastcgi_param  REQUEST_METHOD     $request_method;
-            fastcgi_param  CONTENT_TYPE       $content_type if_not_empty;
-
-            fastcgi_param  CONTENT_LENGTH     $content_length;
-
-            fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
-            fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
-            fastcgi_param  REQUEST_URI        $request_uri;
-            fastcgi_param  DOCUMENT_URI       $document_uri;
-            fastcgi_param  DOCUMENT_ROOT      $document_root;
-            fastcgi_param  SERVER_PROTOCOL    $server_protocol;
-
-            fastcgi_pass php;
-        }
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/test/etc/squid.conf b/vendor/kriswallsmith/buzz/test/etc/squid.conf
deleted file mode 100644
index 1feab63b9085a0be57c5d030be8260dc8726f58b..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/etc/squid.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-http_access allow all
-http_port 3128
diff --git a/vendor/kriswallsmith/buzz/test/server.php b/vendor/kriswallsmith/buzz/test/server.php
deleted file mode 100644
index bada944d0feb38f8ce9d98aac338e620bce38ee8..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/test/server.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-if (isset($_GET['redirect_to'])) {
-    header('Location: '.$_GET['redirect_to']);
-    die;
-}
-
-if (isset($_GET['delay'])) {
-    sleep($_GET['delay']);
-}
-
-echo json_encode(array(
-    'SERVER' => $_SERVER,
-    'GET'    => $_GET,
-    'POST'   => $_POST,
-    'FILES'  => $_FILES,
-    'INPUT'  => file_get_contents('php://input'),
-));
diff --git a/vendor/m4tthumphrey/php-gitlab-api/.travis.yml b/vendor/m4tthumphrey/php-gitlab-api/.travis.yml
deleted file mode 100644
index 17367d5ba6c166ba50df64873f21710e0128296b..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/.travis.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-language: php
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-
-before_script:
-  - travis_retry composer self-update
-  - travis_retry composer install --no-interaction --prefer-source
-
-script:
-  - vendor/bin/phpunit --verbose --coverage-text
diff --git a/vendor/m4tthumphrey/php-gitlab-api/README.md b/vendor/m4tthumphrey/php-gitlab-api/README.md
deleted file mode 100644
index 157474446d98b127386dc2b7da8e30e7d26af079..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/README.md
+++ /dev/null
@@ -1,98 +0,0 @@
-A PHP wrapper for use with the [Gitlab API](https://github.com/gitlabhq/gitlabhq/tree/master/doc/api).
-==============
-
-[![Build Status](https://travis-ci.org/m4tthumphrey/php-gitlab-api.svg?branch=master)](https://travis-ci.org/m4tthumphrey/php-gitlab-api)
-
-Based on [php-github-api](https://github.com/m4tthumphrey/php-github-api) and code from [KnpLabs](https://github.com/KnpLabs/php-github-api).
-
-Installation
-------------
-Install Composer
-
-```
-$ curl -sS https://getcomposer.org/installer | php
-$ sudo mv composer.phar /usr/local/bin/composer
-```
-
-Add the following to your require block in composer.json config. Note: be careful when using the `dev-master` tag as this may have unexpected results depending on your version of Gitlab. See the Versioning section below for more information.
-
-```
-"m4tthumphrey/php-gitlab-api": "dev-master"
-```
-
-Include Composer's autoloader:
-
-
-```php
-require_once dirname(__DIR__).'/vendor/autoload.php';
-```
-
-Versioning
-----------
-
-From the 6.0 stable release of Gitlab, I shall now be matching the client version with the Gitlab version. For example when Gitlab 6.1 is released I will release version 6.1.0 of the API client. If I need to make future updates to the client before the next API version is released. I will simply use a 3th build version. For example `6.1.1`, `6.1.2` etc. It is recommended that you keep your composer file up to date depending on what version of Gitlab you are currently running. So if you are using 6.0, you should required `6.0.*`; 6.1 should be `6.1.*` etc etc.
-
-General API Usage
------------------
-
-```php
-$client = new \Gitlab\Client('http://git.yourdomain.com/api/v3/'); // change here
-$client->authenticate('your_gitlab_token_here', \Gitlab\Client::AUTH_URL_TOKEN); // change here
-
-$project = $client->api('projects')->create('My Project', array(
-  'description' => 'This is a project',
-  'issues_enabled' => false
-));
-
-```
-
-Model Usage
------------
-
-You can also use the library in an object oriented manner.
-
-```php
-$client = new \Gitlab\Client('http://git.yourdomain.com/api/v3/'); // change here
-$client->authenticate('your_gitlab_token_here', \Gitlab\Client::AUTH_URL_TOKEN); // change here
-```
-
-Creating a new project
-
-```php
-$project = \Gitlab\Model\Project::create($client, 'My Project', array(
-  'description' => 'This is my project',
-  'issues_enabled' => false
-));
-
-$project->addHook('http://mydomain.com/hook/push/1');
-```
-
-Creating a new issue
-
-```php
-$project = new \Gitlab\Model\Project(1, $client);
-$issue = $project->createIssue('This does not work..', array(
-  'description' => 'This doesnt work properly. Please fix',
-  'assignee_id' => 2
-));
-```
-
-Closing that issue
-
-```php
-$issue->close();
-```
-
-You get the idea! Take a look around and please feel free to report any bugs.
-
-Framework Integrations
-----------------------
-- **Symfony** - https://github.com/Zeichen32/GitLabApiBundle
-- **Laravel** - https://github.com/vinkla/gitlab
-
-If you have integrated GitLab into a popular PHP framework let us know!
-
-Contributing
-------------
-
-There are many parts of Gitlab that I have not added to this as it was originally created for personal use, hence the lack of tests. Feel free to fork and add new functionality and tests, I'll gladly accept decent pull requests.
diff --git a/vendor/m4tthumphrey/php-gitlab-api/composer.json b/vendor/m4tthumphrey/php-gitlab-api/composer.json
deleted file mode 100644
index 5b67a96264f395e84089b37b576e6eb857099118..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/composer.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-	"name": "m4tthumphrey/php-gitlab-api",
-	"type": "library",
-	"description": "GitLab API client",
-	"homepage": "https://github.com/m4tthumphrey/php-gitlab-api",
-	"keywords": ["gitlab", "api"],
-	"license": "MIT",
-	"authors": [
-		{
-			"name": "Matt Humphrey",
-			"homepage": "http://m4tt.io"
-		},
-		{
-			"name": "KnpLabs Team",
-			"homepage": "http://knplabs.com"
-		},
-		{
-			"name": "Thibault Duplessis",
-			"email": "thibault.duplessis@gmail.com",
-			"homepage": "http://ornicar.github.com"
-		}
-	],
-	"require": {
-		"php":                ">=5.3.2",
-		"ext-curl":           "*",
-		"kriswallsmith/buzz": ">=0.7"
-	},
-	"require-dev": {
-		"phpunit/phpunit": "~4.5"
-	},
-	"autoload": {
-		"psr-0": { "Gitlab\\": "lib/" }
-	}
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/AbstractApi.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/AbstractApi.php
deleted file mode 100644
index 71b91e0c5cb0bbf6e0757497dfdbbe39b7aaa332..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/AbstractApi.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php namespace Gitlab\Api;
-
-use Gitlab\Client;
-
-/**
- * Abstract class for Api classes
- *
- * @author Joseph Bielawski <stloyd@gmail.com>
- * @author Matt Humphrey <matt@m4tt.co>
- */
-abstract class AbstractApi
-{
-    /**
-     * Default entries per page
-     */
-    const PER_PAGE = 20;
-
-    /**
-     * The client
-     *
-     * @var Client
-     */
-    protected $client;
-
-    /**
-     * @param Client $client
-     */
-    public function __construct(Client $client)
-    {
-        $this->client = $client;
-    }
-
-    /**
-     * @return $this
-     * @codeCoverageIgnore
-     */
-    public function configure()
-    {
-        return $this;
-    }
-
-    /**
-     * @param string $path
-     * @param array $parameters
-     * @param array $requestHeaders
-     * @return mixed
-     */
-    protected function get($path, array $parameters = array(), $requestHeaders = array())
-    {
-        $response = $this->client->getHttpClient()->get($path, $parameters, $requestHeaders);
-
-        return $response->getContent();
-    }
-
-    /**
-     * @param string $path
-     * @param array $parameters
-     * @param array $requestHeaders
-     * @return mixed
-     */
-    protected function post($path, array $parameters = array(), $requestHeaders = array())
-    {
-        $response = $this->client->getHttpClient()->post($path, $parameters, $requestHeaders);
-
-        return $response->getContent();
-    }
-
-    /**
-     * @param string $path
-     * @param array $parameters
-     * @param array $requestHeaders
-     * @return mixed
-     */
-    protected function patch($path, array $parameters = array(), $requestHeaders = array())
-    {
-        $response = $this->client->getHttpClient()->patch($path, $parameters, $requestHeaders);
-
-        return $response->getContent();
-    }
-
-    /**
-     * @param string $path
-     * @param array $parameters
-     * @param array $requestHeaders
-     * @return mixed
-     */
-    protected function put($path, array $parameters = array(), $requestHeaders = array())
-    {
-        $response = $this->client->getHttpClient()->put($path, $parameters, $requestHeaders);
-
-        return $response->getContent();
-    }
-
-    /**
-     * @param string $path
-     * @param array $parameters
-     * @param array $requestHeaders
-     * @return mixed
-     */
-    protected function delete($path, array $parameters = array(), $requestHeaders = array())
-    {
-        $response = $this->client->getHttpClient()->delete($path, $parameters, $requestHeaders);
-
-        return $response->getContent();
-    }
-
-    /**
-     * @param int $id
-     * @param string $path
-     * @return string
-     */
-    protected function getProjectPath($id, $path)
-    {
-        return 'projects/'.$this->encodePath($id).'/'.$path;
-    }
-
-    /**
-     * @param string $path
-     * @return string
-     */
-    protected function encodePath($path)
-    {
-        $path = rawurlencode($path);
-
-        return str_replace('.', '%2E', $path);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Groups.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Groups.php
deleted file mode 100644
index 551034f9aaba7e7b2507d0060e13a7b84bc2ba0d..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Groups.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php namespace Gitlab\Api;
-
-class Groups extends AbstractApi
-{
-    /**
-     * @param int $page
-     * @param int $per_page
-     * @return mixed
-     */
-    public function all($page = 1, $per_page = self::PER_PAGE)
-    {
-        return $this->get('groups', array(
-            'page' => $page,
-            'per_page' => $per_page
-        ));
-    }
-
-    /**
-     * @param string $query
-     * @param int $page
-     * @param int $per_page
-     * @return mixed
-     */
-    public function search($query, $page = 1, $per_page = self::PER_PAGE)
-    {
-        return $this->get('groups?search='.$this->encodePath($query), array(
-            'page' => $page,
-            'per_page' => $per_page
-        ));
-    }
-
-    /**
-     * @param int $id
-     * @return mixed
-     */
-    public function show($id)
-    {
-        return $this->get('groups/'.$this->encodePath($id));
-    }
-
-    /**
-     * @param string $name
-     * @param string $path
-     * @param string $description
-     * @return mixed
-     */
-    public function create($name, $path, $description = null)
-    {
-        return $this->post('groups', array(
-            'name' => $name,
-            'path' => $path,
-            'description' => $description
-        ));
-    }
-
-    /**
-     * @param int $group_id
-     * @return mixed
-     */
-    public function remove($group_id)
-    {
-        return $this->delete('groups/'.$this->encodePath($group_id));
-    }
-
-    /**
-     * @param int $group_id
-     * @param int $project_id
-     * @return mixed
-     */
-    public function transfer($group_id, $project_id)
-    {
-        return $this->post('groups/'.$this->encodePath($group_id).'/projects/'.$this->encodePath($project_id));
-    }
-
-    /**
-     * @param int $id
-     * @param int $page
-     * @param int $per_page
-     * @return mixed
-     */
-    public function members($id, $page = 1, $per_page = self::PER_PAGE)
-    {
-        return $this->get('groups/'.$this->encodePath($id).'/members', array(
-            'page' => $page,
-            'per_page' => $per_page
-        ));
-    }
-
-    /**
-     * @param int $group_id
-     * @param int $user_id
-     * @param int $access_level
-     * @return mixed
-     */
-    public function addMember($group_id, $user_id, $access_level)
-    {
-        return $this->post('groups/'.$this->encodePath($group_id).'/members', array(
-            'user_id' => $user_id,
-            'access_level' => $access_level
-        ));
-    }
-
-    /**
-     * @param int $group_id
-     * @param int $user_id
-     * @param int $access_level
-     * @return mixed
-     */
-    public function saveMember($group_id, $user_id, $access_level)
-    {
-        return $this->put('groups/'.$this->encodePath($group_id).'/members/'.$this->encodePath($user_id), array(
-            'access_level' => $access_level
-        ));
-    }
-
-    /**
-     * @param int $group_id
-     * @param int $user_id
-     * @return mixed
-     */
-    public function removeMember($group_id, $user_id)
-    {
-        return $this->delete('groups/'.$this->encodePath($group_id).'/members/'.$this->encodePath($user_id));
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Issues.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Issues.php
deleted file mode 100644
index 86dd78b4bc98f9601626912670d5cbb95b671e93..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Issues.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php namespace Gitlab\Api;
-
-class Issues extends AbstractApi
-{
-    /**
-     * @param int $project_id
-     * @param int $page
-     * @param int $per_page
-     * @param array $params
-     * @return mixed
-     */
-    public function all($project_id = null, $page = 1, $per_page = self::PER_PAGE, array $params = array())
-    {
-        $path = $project_id === null ? 'issues' : $this->getProjectPath($project_id, 'issues');
-
-        $params = array_intersect_key($params, array('labels' => '', 'state' => '', 'sort' => '', 'order_by' => ''));
-        $params = array_merge(array(
-            'page' => $page,
-            'per_page' => $per_page
-        ), $params);
-
-        return $this->get($path, $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $issue_id
-     * @return mixed
-     */
-    public function show($project_id, $issue_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param array $params
-     * @return mixed
-     */
-    public function create($project_id, array $params)
-    {
-        return $this->post($this->getProjectPath($project_id, 'issues'), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $issue_id
-     * @param array $params
-     * @return mixed
-     */
-    public function update($project_id, $issue_id, array $params)
-    {
-        return $this->put($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_id)), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $issue_id
-     * @return mixed
-     */
-    public function showComments($project_id, $issue_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_id)).'/notes');
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $issue_id
-     * @param int $note_id
-     * @return mixed
-     */
-    public function showComment($project_id, $issue_id, $note_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_id)).'/notes/'.$this->encodePath($note_id));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $issue_id
-     * @param string|array $body
-     * @return mixed
-     */
-    public function addComment($project_id, $issue_id, $body)
-    {
-        // backwards compatibility
-        if (is_array($body)) {
-            $params = $body;
-        } else {
-            $params = array('body' => $body);
-        }
-
-        return $this->post($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_id).'/notes'), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $issue_id
-     * @param int $note_id
-     * @param string $body
-     * @return mixed
-     */
-    public function updateComment($project_id, $issue_id, $note_id, $body)
-    {
-        return $this->put($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_id).'/notes/'.$this->encodePath($note_id)), array(
-            'body' => $body
-        ));
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/MergeRequests.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/MergeRequests.php
deleted file mode 100644
index 292a4c21d483e4f17767c3d5c4f87ab1260443fe..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/MergeRequests.php
+++ /dev/null
@@ -1,177 +0,0 @@
-<?php namespace Gitlab\Api;
-
-class MergeRequests extends AbstractApi
-{
-    const STATE_ALL = 'all';
-    const STATE_MERGED = 'merged';
-    const STATE_OPENED = 'opened';
-    const STATE_CLOSED = 'closed';
-
-    const ORDER_BY = 'created_at';
-    const SORT = 'asc';
-
-    /**
-     * @param int $project_id
-     * @param string $state
-     * @param int $page
-     * @param int $per_page
-     * @param string $order_by
-     * @param string $sort
-     * @return mixed
-     */
-    public function getList($project_id, $state = self::STATE_ALL, $page = 1, $per_page = self::PER_PAGE, $order_by = self::ORDER_BY, $sort = self::SORT)
-    {
-        return $this->get($this->getProjectPath($project_id, 'merge_requests'), array(
-            'page' => $page,
-            'per_page' => $per_page,
-            'state' => $state,
-            'order_by' => $order_by,
-            'sort' => $sort
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $page
-     * @param int $per_page
-     * @param string $order_by
-     * @param string $sort
-     * @return mixed
-     */
-    public function all($project_id, $page = 1, $per_page = self::PER_PAGE, $order_by = self::ORDER_BY, $sort = self::SORT)
-    {
-        return $this->getList($project_id, self::STATE_ALL, $page, $per_page, $order_by, $sort);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $page
-     * @param int $per_page
-     * @param string $order_by
-     * @param string $sort
-     * @return mixed
-     */
-    public function merged($project_id, $page = 1, $per_page = self::PER_PAGE, $order_by = self::ORDER_BY, $sort = self::SORT)
-    {
-        return $this->getList($project_id, self::STATE_MERGED, $page, $per_page, $order_by, $sort);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $page
-     * @param int $per_page
-     * @param string $order_by
-     * @param string $sort
-     * @return mixed
-     */
-    public function opened($project_id, $page = 1, $per_page = self::PER_PAGE, $order_by = self::ORDER_BY, $sort = self::SORT)
-    {
-        return $this->getList($project_id, self::STATE_OPENED, $page, $per_page, $order_by, $sort);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $page
-     * @param int $per_page
-     * @param string $order_by
-     * @param string $sort
-     * @return mixed
-     */
-    public function closed($project_id, $page = 1, $per_page = self::PER_PAGE, $order_by = self::ORDER_BY, $sort = self::SORT)
-    {
-        return $this->getList($project_id, self::STATE_CLOSED, $page, $per_page, $order_by, $sort);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $mr_id
-     * @return mixed
-     */
-    public function show($project_id, $mr_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'merge_request/'.$this->encodePath($mr_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $source
-     * @param string $target
-     * @param string $title
-     * @param int $assignee
-     * @param int $target_project_id
-     * @param string $description
-     * @return mixed
-     */
-    public function create($project_id, $source, $target, $title, $assignee = null, $target_project_id = null, $description = null)
-    {
-        return $this->post($this->getProjectPath($project_id, 'merge_requests'), array(
-            'source_branch' => $source,
-            'target_branch' => $target,
-            'title' => $title,
-            'assignee_id' => $assignee,
-            'target_project_id' => $target_project_id,
-            'description' => $description
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $mr_id
-     * @param array $params
-     * @return mixed
-     */
-    public function update($project_id, $mr_id, array $params)
-    {
-        return $this->put($this->getProjectPath($project_id, 'merge_request/'.$this->encodePath($mr_id)), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $mr_id
-     * @param string $message
-     * @return mixed
-     */
-    public function merge($project_id, $mr_id, $message = null)
-    {
-        if (is_array($message)) {
-            $params = $message;
-        } else {
-            $params = array('merge_commit_message' => $message);
-        }
-
-        return $this->put($this->getProjectPath($project_id, 'merge_request/'.$this->encodePath($mr_id).'/merge'), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $mr_id
-     * @return mixed
-     */
-    public function showComments($project_id, $mr_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'merge_request/'.$this->encodePath($mr_id).'/comments'));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $mr_id
-     * @param int $note
-     * @return mixed
-     */
-    public function addComment($project_id, $mr_id, $note)
-    {
-        return $this->post($this->getProjectPath($project_id, 'merge_request/'.$this->encodePath($mr_id).'/comments'), array(
-            'note' => $note
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $mr_id
-     * @return mixed
-     */
-    public function changes($project_id, $mr_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'merge_request/'.$this->encodePath($mr_id).'/changes'));
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Milestones.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Milestones.php
deleted file mode 100644
index 3b15281834e07651e1a2cb6d75504beaf78629ac..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Milestones.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php namespace Gitlab\Api;
-
-class Milestones extends AbstractApi
-{
-    /**
-     * @param int $project_id
-     * @param int $page
-     * @param int $per_page
-     * @return mixed
-     */
-    public function all($project_id, $page = 1, $per_page = self::PER_PAGE)
-    {
-        return $this->get($this->getProjectPath($project_id, 'milestones'), array(
-            'page' => $page,
-            'per_page' => $per_page
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $milestone_id
-     * @return mixed
-     */
-    public function show($project_id, $milestone_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'milestones/'.$this->encodePath($milestone_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param array $params
-     * @return mixed
-     */
-    public function create($project_id, array $params)
-    {
-        return $this->post($this->getProjectPath($project_id, 'milestones'), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $milestone_id
-     * @param array $params
-     * @return mixed
-     */
-    public function update($project_id, $milestone_id, array $params)
-    {
-        return $this->put($this->getProjectPath($project_id, 'milestones/'.$this->encodePath($milestone_id)), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $milestone_id
-     * @return mixed
-     */
-    public function issues($project_id, $milestone_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'milestones/'.$this->encodePath($milestone_id).'/issues'));
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/ProjectNamespaces.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/ProjectNamespaces.php
deleted file mode 100644
index 480fa79c88097df77b99386a32e408f67552f070..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/ProjectNamespaces.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php namespace Gitlab\Api;
-
-class ProjectNamespaces extends AbstractApi
-{
-    /**
-     * @param int $page
-     * @param int $per_page
-     * @return mixed
-     */
-    public function all($page = 1, $per_page = self::PER_PAGE)
-    {
-        return $this->get('namespaces', array(
-            'page' => $page,
-            'per_page' => $per_page
-        ));
-    }
-
-    /**
-     * @param string $terms
-     * @param int $page
-     * @param int $per_page
-     * @return mixed
-     */
-    public function search($terms, $page = 1, $per_page = self::PER_PAGE)
-    {
-        return $this->get('namespaces', array(
-            'search' => $terms,
-            'page' => $page,
-            'per_page' => $per_page
-        ));
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Projects.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Projects.php
deleted file mode 100644
index 45104d5083e50319726c290748b44a519a551928..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Projects.php
+++ /dev/null
@@ -1,388 +0,0 @@
-<?php namespace Gitlab\Api;
-
-class Projects extends AbstractApi
-{
-    const ORDER_BY = 'created_at';
-    const SORT = 'asc';
-
-    /**
-     * @param int $page
-     * @param int $per_page
-     * @param string $order_by
-     * @param string $sort
-     * @return mixed
-     */
-    public function all($page = 1, $per_page = self::PER_PAGE, $order_by = self::ORDER_BY, $sort = self::SORT)
-    {
-        return $this->get('projects/all', array(
-            'page' => $page,
-            'per_page' => $per_page,
-            'order_by' => $order_by,
-            'sort' => $sort
-        ));
-    }
-
-    /**
-     * @param int $page
-     * @param int $per_page
-     * @param string $order_by
-     * @param string $sort
-     * @return mixed
-     */
-    public function accessible($page = 1, $per_page = self::PER_PAGE, $order_by = self::ORDER_BY, $sort = self::SORT)
-    {
-        return $this->get('projects', array(
-            'page' => $page,
-            'per_page' => $per_page,
-            'order_by' => $order_by,
-            'sort' => $sort
-        ));
-    }
-
-    /**
-     * @param int $page
-     * @param int $per_page
-     * @param string $order_by
-     * @param string $sort
-     * @return mixed
-     */
-    public function owned($page = 1, $per_page = self::PER_PAGE, $order_by = self::ORDER_BY, $sort = self::SORT)
-    {
-        return $this->get('projects/owned', array(
-            'page' => $page,
-            'per_page' => $per_page,
-            'order_by' => $order_by,
-            'sort' => $sort
-        ));
-    }
-
-    /**
-     * @param string $query
-     * @param int $page
-     * @param int $per_page
-     * @param string $order_by
-     * @param string $sort
-     * @return mixed
-     */
-    public function search($query, $page = 1, $per_page = self::PER_PAGE, $order_by = self::ORDER_BY, $sort = self::SORT)
-    {
-        return $this->get('projects/search/'.$this->encodePath($query), array(
-            'page' => $page,
-            'per_page' => $per_page,
-            'order_by' => $order_by,
-            'sort' => $sort
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @return mixed
-     */
-    public function show($project_id)
-    {
-        return $this->get('projects/'.$this->encodePath($project_id));
-    }
-
-    /**
-     * @param string $name
-     * @param array $params
-     * @return mixed
-     */
-    public function create($name, array $params = array())
-    {
-        $params['name'] = $name;
-
-        return $this->post('projects', $params);
-    }
-
-    /**
-     * @param int $user_id
-     * @param string $name
-     * @param array $params
-     * @return mixed
-     */
-    public function createForUser($user_id, $name, array $params = array())
-    {
-        $params['name'] = $name;
-
-        return $this->post('projects/user/'.$this->encodePath($user_id), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param array $params
-     * @return mixed
-     */
-    public function update($project_id, array $params)
-    {
-        return $this->put('projects/'.$this->encodePath($project_id), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @return mixed
-     */
-    public function remove($project_id)
-    {
-        return $this->delete('projects/'.$this->encodePath($project_id));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $username_query
-     * @return mixed
-     */
-    public function members($project_id, $username_query = null)
-    {
-        return $this->get($this->getProjectPath($project_id, 'members'), array(
-            'query' => $username_query
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $user_id
-     * @return mixed
-     */
-    public function member($project_id, $user_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'members/'.$this->encodePath($user_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $user_id
-     * @param int $access_level
-     * @return mixed
-     */
-    public function addMember($project_id, $user_id, $access_level)
-    {
-        return $this->post($this->getProjectPath($project_id, 'members'), array(
-            'user_id' => $user_id,
-            'access_level' => $access_level
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $user_id
-     * @param int $access_level
-     * @return mixed
-     */
-    public function saveMember($project_id, $user_id, $access_level)
-    {
-        return $this->put($this->getProjectPath($project_id, 'members/'.urldecode($user_id)), array(
-            'access_level' => $access_level
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $user_id
-     * @return mixed
-     */
-    public function removeMember($project_id, $user_id)
-    {
-        return $this->delete($this->getProjectPath($project_id, 'members/'.urldecode($user_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $page
-     * @param int $per_page
-     * @return mixed
-     */
-    public function hooks($project_id, $page = 1, $per_page = self::PER_PAGE)
-    {
-        return $this->get($this->getProjectPath($project_id, 'hooks'), array(
-            'page' => $page,
-            'per_page' => $per_page
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $hook_id
-     * @return mixed
-     */
-    public function hook($project_id, $hook_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'hooks/'.$this->encodePath($hook_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $url
-     * @param array $params
-     * @return mixed
-     */
-    public function addHook($project_id, $url, array $params = array())
-    {
-        if (empty($params)) {
-            $params = array('push_events' => true);
-        }
-
-        $params['url'] = $url;
-
-        return $this->post($this->getProjectPath($project_id, 'hooks'), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $hook_id
-     * @param array $params
-     * @return mixed
-     */
-    public function updateHook($project_id, $hook_id, array $params)
-    {
-        return $this->put($this->getProjectPath($project_id, 'hooks/'.$this->encodePath($hook_id)), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $hook_id
-     * @return mixed
-     */
-    public function removeHook($project_id, $hook_id)
-    {
-        return $this->delete($this->getProjectPath($project_id, 'hooks/'.$this->encodePath($hook_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @return mixed
-     */
-    public function keys($project_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'keys'));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $key_id
-     * @return mixed
-     */
-    public function key($project_id, $key_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'keys/'.$this->encodePath($key_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $title
-     * @param string $key
-     * @return mixed
-     */
-    public function addKey($project_id, $title, $key)
-    {
-        return $this->post($this->getProjectPath($project_id, 'keys'), array(
-            'title' => $title,
-            'key' => $key
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $key_id
-     * @return mixed
-     */
-    public function removeKey($project_id, $key_id)
-    {
-        return $this->delete($this->getProjectPath($project_id, 'keys/'.$this->encodePath($key_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $page
-     * @param int $per_page
-     * @return mixed
-     */
-    public function events($project_id, $page = 1, $per_page = self::PER_PAGE)
-    {
-        return $this->get($this->getProjectPath($project_id, 'events'), array(
-            'page' => $page,
-            'per_page' => $per_page
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @return mixed
-     */
-    public function labels($project_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'labels'));
-    }
-
-    /**
-     * @param int $project_id
-     * @param array $params
-     * @return mixed
-     */
-    public function addLabel($project_id, array $params)
-    {
-        return $this->post($this->getProjectPath($project_id, 'labels'), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param array $params
-     * @return mixed
-     */
-    public function updateLabel($project_id, array $params)
-    {
-        return $this->put($this->getProjectPath($project_id, 'labels'), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $name
-     * @return mixed
-     */
-    public function removeLabel($project_id, $name)
-    {
-        return $this->delete($this->getProjectPath($project_id, 'labels'), array(
-            'name' => $name
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $forked_project_id
-     * @return mixed
-     */
-    public function createForkRelation($project_id, $forked_project_id)
-    {
-        return $this->post($this->getProjectPath($project_id, 'fork/'.$this->encodePath($forked_project_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @return mixed
-     */
-    public function removeForkRelation($project_id)
-    {
-        return $this->delete($this->getProjectPath($project_id, 'fork'));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $service_name
-     * @param array $params
-     * @return mixed
-     */
-    public function setService($project_id, $service_name, array $params = array())
-    {
-        return $this->put($this->getProjectPath($project_id, 'services/'.$this->encodePath($service_name)), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $service_name
-     * @return mixed
-     */
-    public function removeService($project_id, $service_name)
-    {
-        return $this->delete($this->getProjectPath($project_id, 'services/'.$this->encodePath($service_name)));
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Repositories.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Repositories.php
deleted file mode 100644
index 83e91eff52ab9efee45e14b104b922f766e37a9c..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Repositories.php
+++ /dev/null
@@ -1,284 +0,0 @@
-<?php namespace Gitlab\Api;
-
-class Repositories extends AbstractApi
-{
-    /**
-     * @param int $project_id
-     * @return mixed
-     */
-    public function branches($project_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'repository/branches'));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $branch_id
-     * @return mixed
-     */
-    public function branch($project_id, $branch_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'repository/branches/'.$this->encodeBranch($branch_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $branch_name
-     * @param string $ref
-     * @return mixed
-     */
-    public function createBranch($project_id, $branch_name, $ref)
-    {
-        return $this->post($this->getProjectPath($project_id, 'repository/branches'), array(
-            'branch_name' => $branch_name,
-            'ref' => $ref
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $branch_name
-     * @return mixed
-     */
-    public function deleteBranch($project_id, $branch_name)
-    {
-        return $this->delete($this->getProjectPath($project_id, 'repository/branches/'.$this->encodeBranch($branch_name)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $branch_name
-     * @return mixed
-     */
-    public function protectBranch($project_id, $branch_name)
-    {
-        return $this->put($this->getProjectPath($project_id, 'repository/branches/'.$this->encodeBranch($branch_name).'/protect'));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $branch_name
-     * @return mixed
-     */
-    public function unprotectBranch($project_id, $branch_name)
-    {
-        return $this->put($this->getProjectPath($project_id, 'repository/branches/'.$this->encodeBranch($branch_name).'/unprotect'));
-    }
-
-    /**
-     * @param int $project_id
-     * @return mixed
-     */
-    public function tags($project_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'repository/tags'));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $name
-     * @param string $ref
-     * @param string $message
-     * @return mixed
-     */
-    public function createTag($project_id, $name, $ref, $message = null)
-    {
-        return $this->post($this->getProjectPath($project_id, 'repository/tags'), array(
-            'tag_name' => $name,
-            'ref' => $ref,
-            'message' => $message
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $page
-     * @param int $per_page
-     * @param null $ref_name
-     * @return mixed
-     */
-    public function commits($project_id, $page = 0, $per_page = self::PER_PAGE, $ref_name = null)
-    {
-        return $this->get($this->getProjectPath($project_id, 'repository/commits'), array(
-            'page' => $page,
-            'per_page' => $per_page,
-            'ref_name' => $ref_name
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param $sha
-     * @return mixed
-     */
-    public function commit($project_id, $sha)
-    {
-        return $this->get($this->getProjectPath($project_id, 'repository/commits/'.$this->encodePath($sha)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $sha
-     * @param int $page
-     * @param int $per_page
-     * @return mixed
-     */
-    public function commitComments($project_id, $sha, $page = 0, $per_page = self::PER_PAGE)
-    {
-        return $this->get($this->getProjectPath($project_id, 'repository/commits/'.$this->encodePath($sha).'/comments'), array(
-            'page' => $page,
-            'per_page' => $per_page
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $sha
-     * @param string $note
-     * @param array $params
-     * @return mixed
-     */
-    public function createCommitComment($project_id, $sha, $note, array $params = array())
-    {
-        $params['note'] = $note;
-
-        return $this->post($this->getProjectPath($project_id, 'repository/commits/'.$this->encodePath($sha).'/comments'), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $fromShaOrMaster
-     * @param string $toShaOrMaster
-     * @return mixed
-     */
-    public function compare($project_id, $fromShaOrMaster, $toShaOrMaster)
-    {
-        return $this->get($this->getProjectPath(
-            $project_id,
-            'repository/compare?from='.$this->encodeBranch($fromShaOrMaster).'&to='.$this->encodeBranch($toShaOrMaster)
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $sha
-     * @return string
-     */
-    public function diff($project_id, $sha)
-    {
-        return $this->get($this->getProjectPath($project_id, 'repository/commits/'.$this->encodePath($sha).'/diff'));
-    }
-
-    /**
-     * @param int $project_id
-     * @param array $params
-     * @return mixed
-     */
-    public function tree($project_id, array $params = array())
-    {
-        return $this->get($this->getProjectPath($project_id, 'repository/tree'), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $sha
-     * @param string $filepath
-     * @return mixed
-     */
-    public function blob($project_id, $sha, $filepath)
-    {
-        return $this->get($this->getProjectPath($project_id, 'repository/commits/'.$this->encodePath($sha).'/blob'), array(
-            'filepath' => $filepath
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $file_path
-     * @param string $ref
-     * @return mixed
-     */
-    public function getFile($project_id, $file_path, $ref)
-    {
-        return $this->get($this->getProjectPath($project_id, 'repository/files'), array(
-            'file_path' => $file_path,
-            'ref' => $ref
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $file_path
-     * @param string $content
-     * @param string $branch_name
-     * @param string $commit_message
-     * @param string $encoding
-     * @return mixed
-     */
-    public function createFile($project_id, $file_path, $content, $branch_name, $commit_message, $encoding = null)
-    {
-        return $this->post($this->getProjectPath($project_id, 'repository/files'), array(
-            'file_path' => $file_path,
-            'branch_name' => $branch_name,
-            'content' => $content,
-            'commit_message' => $commit_message,
-            'encoding' => $encoding
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $file_path
-     * @param string $content
-     * @param string $branch_name
-     * @param string $commit_message
-     * @param string $encoding
-     * @return mixed
-     */
-    public function updateFile($project_id, $file_path, $content, $branch_name, $commit_message, $encoding = null)
-    {
-        return $this->put($this->getProjectPath($project_id, 'repository/files'), array(
-            'file_path' => $file_path,
-            'branch_name' => $branch_name,
-            'content' => $content,
-            'commit_message' => $commit_message,
-            'encoding' => $encoding
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $file_path
-     * @param string $branch_name
-     * @param string $commit_message
-     * @return mixed
-     */
-    public function deleteFile($project_id, $file_path, $branch_name, $commit_message)
-    {
-        return $this->delete($this->getProjectPath($project_id, 'repository/files'), array(
-            'file_path' => $file_path,
-            'branch_name' => $branch_name,
-            'commit_message' => $commit_message
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @return mixed
-     */
-    public function contributors($project_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'repository/contributors'));
-    }
-
-    /**
-     * @param string $path
-     * @return string
-     */
-    protected function encodeBranch($path)
-    {
-        $path = $this->encodePath($path);
-
-        return str_replace('%2F', '/', $path);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Snippets.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Snippets.php
deleted file mode 100644
index 00921128c8922b3354885c8ddf48a27b08d165f0..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Snippets.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php namespace Gitlab\Api;
-
-class Snippets extends AbstractApi
-{
-    /**
-     * @param int $project_id
-     * @return mixed
-     */
-    public function all($project_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'snippets'));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $snippet_id
-     * @return mixed
-     */
-    public function show($project_id, $snippet_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'snippets/'.$this->encodePath($snippet_id)));
-    }
-
-    /**
-     * @param int $project_id
-     * @param string $title
-     * @param string $filename
-     * @param string $code
-     * @return mixed
-     */
-    public function create($project_id, $title, $filename, $code)
-    {
-        return $this->post($this->getProjectPath($project_id, 'snippets'), array(
-            'title' => $title,
-            'file_name' => $filename,
-            'code' => $code
-        ));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $snippet_id
-     * @param array $params
-     * @return mixed
-     */
-    public function update($project_id, $snippet_id, array $params)
-    {
-        return $this->put($this->getProjectPath($project_id, 'snippets/'.$this->encodePath($snippet_id)), $params);
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $snippet_id
-     * @return string
-     */
-    public function content($project_id, $snippet_id)
-    {
-        return $this->get($this->getProjectPath($project_id, 'snippets/'.$this->encodePath($snippet_id).'/raw'));
-    }
-
-    /**
-     * @param int $project_id
-     * @param int $snippet_id
-     * @return mixed
-     */
-    public function remove($project_id, $snippet_id)
-    {
-        return $this->delete($this->getProjectPath($project_id, 'snippets/'.$this->encodePath($snippet_id)));
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/SystemHooks.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/SystemHooks.php
deleted file mode 100644
index b21fd0908ffc06c29befeff674a3432fcfd7b888..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/SystemHooks.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php namespace Gitlab\Api;
-
-class SystemHooks extends AbstractApi
-{
-    /**
-     * @return mixed
-     */
-    public function all()
-    {
-        return $this->get('hooks');
-    }
-
-    /**
-     * @param string $url
-     * @return mixed
-     */
-    public function create($url)
-    {
-        return $this->post('hooks', array(
-            'url' => $url
-        ));
-    }
-
-    /**
-     * @param int $id
-     * @return mixed
-     */
-    public function test($id)
-    {
-        return $this->get('hooks/'.$this->encodePath($id));
-    }
-
-    /**
-     * @param int $id
-     * @return mixed
-     */
-    public function remove($id)
-    {
-        return $this->delete('hooks/'.$this->encodePath($id));
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Users.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Users.php
deleted file mode 100644
index 2fa1d88c3799c86153f9eed609d4d8ec0ea67343..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Api/Users.php
+++ /dev/null
@@ -1,210 +0,0 @@
-<?php namespace Gitlab\Api;
-
-class Users extends AbstractApi
-{
-    /**
-     * @param null|true $active
-     * @param int $page
-     * @param int $per_page
-     * @return mixed
-     */
-    public function all($active = null, $page = 1, $per_page = self::PER_PAGE)
-    {
-        return $this->get('users', array(
-            'active' => $active,
-            'page' => $page,
-            'per_page' => $per_page
-        ));
-    }
-
-    /**
-     * @param string $query
-     * @param null|true $active
-     * @param int $page
-     * @param int $per_page
-     * @return mixed
-     */
-    public function search($query, $active = null, $page = 1, $per_page = self::PER_PAGE)
-    {
-        return $this->get('users', array(
-            'search' => $query,
-            'active' => $active,
-            'page' => $page,
-            'per_page' => $per_page
-        ));
-    }
-
-    /**
-     * @param int $id
-     * @return mixed
-     */
-    public function show($id)
-    {
-        return $this->get('users/'.$this->encodePath($id));
-    }
-
-    /**
-     * @param string $email
-     * @param string $password
-     * @param array $params
-     * @return mixed
-     */
-    public function create($email, $password, array $params = array())
-    {
-        $params['email']    = $email;
-        $params['password'] = $password;
-
-        return $this->post('users', $params);
-    }
-
-    /**
-     * @param int $id
-     * @param array $params
-     * @return mixed
-     */
-    public function update($id, array $params)
-    {
-        return $this->put('users/'.$this->encodePath($id), $params);
-    }
-
-    /**
-     * @param int $id
-     * @return mixed
-     */
-    public function remove($id)
-    {
-        return $this->delete('users/'.$this->encodePath($id));
-    }
-
-    /**
-     * @param  int $id
-     * @return mixed
-     */
-    public function block($id)
-    {
-        return $this->put('users/'.$this->encodePath($id).'/block');
-    }
-
-    /**
-     * @param  int $id
-     * @return mixed
-     */
-    public function unblock($id)
-    {
-        return $this->put('users/'.$this->encodePath($id).'/unblock');
-    }
-
-    /**
-     * @param string $emailOrUsername
-     * @param string $password
-     * @return mixed
-     */
-    public function session($emailOrUsername, $password)
-    {
-        return $this->post('session', array(
-            'login' => $emailOrUsername,
-            'email' => $emailOrUsername,
-            'password' => $password
-        ));
-    }
-
-    /**
-     * @param string $email
-     * @param string $password
-     * @return mixed
-     */
-    public function login($email, $password)
-    {
-        return $this->session($email, $password);
-    }
-
-    /**
-     * @return mixed
-     */
-    public function me()
-    {
-        return $this->get('user');
-    }
-
-    /**
-     * @return mixed
-     */
-    public function keys()
-    {
-        return $this->get('user/keys');
-    }
-
-    /**
-     * @param int $id
-     * @return mixed
-     */
-    public function key($id)
-    {
-        return $this->get('user/keys/'.$this->encodePath($id));
-    }
-
-    /**
-     * @param string $title
-     * @param string $key
-     * @return mixed
-     */
-    public function createKey($title, $key)
-    {
-        return $this->post('user/keys', array(
-            'title' => $title,
-            'key' => $key
-        ));
-    }
-
-    /**
-     * @param int $id
-     * @return mixed
-     */
-    public function removeKey($id)
-    {
-        return $this->delete('user/keys/'.$this->encodePath($id));
-    }
-
-    /**
-     * @param int $user_id
-     * @return mixed
-     */
-    public function userKeys($user_id)
-    {
-        return $this->get('users/'.$this->encodePath($user_id).'/keys');
-    }
-
-    /*
-     * @param int $user_id
-     * @param int $key_id
-     * @return mixed
-     */
-    public function userKey($user_id, $key_id)
-    {
-        return $this->get('users/'.$this->encodePath($user_id).'/keys/'.$this->encodePath($key_id));
-    }
-
-    /**
-     * @param int $user_id
-     * @param string $title
-     * @param string $key
-     * @return mixed
-     */
-    public function createKeyForUser($user_id, $title, $key)
-    {
-        return $this->post('users/'.$this->encodePath($user_id).'/keys', array(
-            'title' => $title,
-            'key' => $key
-        ));
-    }
-
-    /**
-     * @param int $user_id
-     * @param int $key_id
-     * @return mixed
-     */
-    public function removeUserKey($user_id, $key_id)
-    {
-        return $this->delete('users/'.$this->encodePath($user_id).'/keys/'.$this->encodePath($key_id));
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Client.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Client.php
deleted file mode 100644
index af6a694175548a59aed8dcdb8e4e681481be4f5d..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Client.php
+++ /dev/null
@@ -1,272 +0,0 @@
-<?php namespace Gitlab;
-
-use Buzz\Client\Curl;
-use Buzz\Client\ClientInterface;
-
-use Gitlab\Api\AbstractApi;
-use Gitlab\Exception\InvalidArgumentException;
-use Gitlab\HttpClient\HttpClient;
-use Gitlab\HttpClient\HttpClientInterface;
-use Gitlab\HttpClient\Listener\AuthListener;
-
-/**
- * Simple API wrapper for Gitlab
- *
- * @author Matt Humphrey <matt@m4tt.co>
- *
- * @property-read \Gitlab\Api\Groups $groups
- * @property-read \Gitlab\Api\Issues $issues
- * @property-read \Gitlab\Api\MergeRequests $merge_requests
- * @property-read \Gitlab\Api\MergeRequests $mr
- * @property-read \Gitlab\Api\Milestones $milestones
- * @property-read \Gitlab\Api\Milestones $ms
- * @property-read \Gitlab\Api\ProjectNamespaces $namespaces
- * @property-read \Gitlab\Api\ProjectNamespaces $ns
- * @property-read \Gitlab\Api\Projects $projects
- * @property-read \Gitlab\Api\Repositories $repositories
- * @property-read \Gitlab\Api\Repositories $repo
- * @property-read \Gitlab\Api\Snippets $snippets
- * @property-read \Gitlab\Api\SystemHooks $hooks
- * @property-read \Gitlab\Api\SystemHooks $system_hooks
- * @property-read \Gitlab\Api\Users $users
- */
-class Client
-{
-    /**
-     * Constant for authentication method. Indicates the default, but deprecated
-     * login with username and token in URL.
-     */
-    const AUTH_URL_TOKEN = 'url_token';
-
-    /**
-     * Constant for authentication method. Indicates the new login method with
-     * with username and token via HTTP Authentication.
-     */
-    const AUTH_HTTP_TOKEN = 'http_token';
-
-    /**
-     * Constant for authentication method. Indicates the OAuth method with a key
-     * obtain using Gitlab's OAuth provider.
-     */
-    const AUTH_OAUTH_TOKEN = 'oauth_token';
-
-    /**
-     * @var array
-     */
-    private $options = array(
-        'user_agent'  => 'php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)',
-        'timeout'     => 60
-    );
-
-    private $baseUrl;
-
-    /**
-     * The Buzz instance used to communicate with Gitlab
-     *
-     * @var HttpClient
-     */
-    private $httpClient;
-
-    /**
-     * Instantiate a new Gitlab client
-     *
-     * @param string               $baseUrl
-     * @param null|ClientInterface $httpClient Buzz client
-     */
-    public function __construct($baseUrl, ClientInterface $httpClient = null)
-    {
-        $httpClient = $httpClient ?: new Curl();
-        $httpClient->setTimeout($this->options['timeout']);
-        $httpClient->setVerifyPeer(false);
-
-        $this->baseUrl     = $baseUrl;
-        $this->httpClient  = new HttpClient($this->baseUrl, $this->options, $httpClient);
-    }
-
-    /**
-     * @param string $name
-     *
-     * @return AbstractApi|mixed
-     * @throws InvalidArgumentException
-     */
-    public function api($name)
-    {
-        switch ($name) {
-
-            case 'groups':
-                $api = new Api\Groups($this);
-                break;
-
-            case 'issues':
-                $api = new Api\Issues($this);
-                break;
-
-            case 'mr':
-            case 'merge_requests':
-                $api = new Api\MergeRequests($this);
-                break;
-
-            case 'milestones':
-            case 'ms':
-                $api = new Api\Milestones($this);
-                break;
-
-            case 'namespaces':
-            case 'ns':
-                $api = new Api\ProjectNamespaces($this);
-                break;
-
-            case 'projects':
-                $api = new Api\Projects($this);
-                break;
-
-            case 'repo':
-            case 'repositories':
-                $api = new Api\Repositories($this);
-                break;
-
-            case 'snippets':
-                $api = new Api\Snippets($this);
-                break;
-
-            case 'hooks':
-            case 'system_hooks':
-                $api = new Api\SystemHooks($this);
-                break;
-
-            case 'users':
-                $api = new Api\Users($this);
-                break;
-
-            default:
-                throw new InvalidArgumentException('Invalid endpoint: "'.$name.'"');
-
-        }
-
-        return $api;
-    }
-
-    /**
-     * Authenticate a user for all next requests
-     *
-     * @param string $token Gitlab private token
-     * @param string $authMethod One of the AUTH_* class constants
-     * @param string $sudo
-     * @return $this
-     */
-    public function authenticate($token, $authMethod = self::AUTH_URL_TOKEN, $sudo = null)
-    {
-        $this->httpClient->addListener(
-            new AuthListener(
-                $authMethod,
-                $token,
-                $sudo
-            )
-        );
-
-        return $this;
-    }
-
-    /**
-     * @return HttpClient
-     */
-    public function getHttpClient()
-    {
-        return $this->httpClient;
-    }
-
-    /**
-     * @param HttpClientInterface $httpClient
-     * @return $this
-     */
-    public function setHttpClient(HttpClientInterface $httpClient)
-    {
-        $this->httpClient = $httpClient;
-
-        return $this;
-    }
-
-    /**
-     * @param string $url
-     * @return $this
-     */
-    public function setBaseUrl($url)
-    {
-        $this->baseUrl = $url;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getBaseUrl()
-    {
-        return $this->baseUrl;
-    }
-
-    /**
-     * Clears used headers
-     *
-     * @return $this
-     */
-    public function clearHeaders()
-    {
-        $this->httpClient->clearHeaders();
-
-        return $this;
-    }
-
-    /**
-     * @param array $headers
-     * @return $this
-     */
-    public function setHeaders(array $headers)
-    {
-        $this->httpClient->setHeaders($headers);
-
-        return $this;
-    }
-
-    /**
-     * @param string $name
-     *
-     * @return mixed
-     *
-     * @throws InvalidArgumentException
-     */
-    public function getOption($name)
-    {
-        if (!array_key_exists($name, $this->options)) {
-            throw new InvalidArgumentException(sprintf('Undefined option called: "%s"', $name));
-        }
-
-        return $this->options[$name];
-    }
-
-    /**
-     * @param string $name
-     * @param mixed $value
-     * @throws InvalidArgumentException
-     * @return $this
-     */
-    public function setOption($name, $value)
-    {
-        if (!array_key_exists($name, $this->options)) {
-            throw new InvalidArgumentException(sprintf('Undefined option called: "%s"', $name));
-        }
-
-        $this->options[$name] = $value;
-
-        return $this;
-    }
-
-    /**
-     * @param string $api
-     * @return AbstractApi
-     */
-    public function __get($api)
-    {
-        return $this->api($api);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/ErrorException.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/ErrorException.php
deleted file mode 100644
index 322a7082da842e0a605b6ade666f9ecc23f54aec..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/ErrorException.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php namespace Gitlab\Exception;
-
-/**
- * ErrorException
- *
- * @author Joseph Bielawski <stloyd@gmail.com>
- */
-class ErrorException extends \ErrorException
-{
-
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/InvalidArgumentException.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/InvalidArgumentException.php
deleted file mode 100644
index 892a6dc4bd945fbe0ff6889d93aeb9f45906c721..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php namespace Gitlab\Exception;
-
-/**
- * InvalidArgumentException
- *
- * @author Joseph Bielawski <stloyd@gmail.com>
- */
-class InvalidArgumentException extends \InvalidArgumentException
-{
-
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/MissingArgumentException.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/MissingArgumentException.php
deleted file mode 100644
index f157b49d1e5a263071e637a0f376d417476757dc..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/MissingArgumentException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php namespace Gitlab\Exception;
-
-/**
- * MissingArgumentException
- *
- * @author Joseph Bielawski <stloyd@gmail.com>
- */
-class MissingArgumentException extends ErrorException
-{
-    public function __construct($required, $code = 0, $previous = null)
-    {
-        if (is_string($required)) {
-            $required = array($required);
-        }
-
-        parent::__construct(sprintf('One or more of required ("%s") parameters is missing!', implode('", "', $required)), $code, $previous);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/RuntimeException.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/RuntimeException.php
deleted file mode 100644
index 9d938e2cc3948e6c7858fc020d4cb753d828f709..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/RuntimeException.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php namespace Gitlab\Exception;
-
-/**
- * RuntimeException
- *
- * @author Joseph Bielawski <stloyd@gmail.com>
- */
-class RuntimeException extends \RuntimeException
-{
-
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/ValidationFailedException.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/ValidationFailedException.php
deleted file mode 100644
index 9ce6635fe58795a4b740ea1a8208d04cfac8d2bd..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Exception/ValidationFailedException.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php namespace Gitlab\Exception;
-
-/**
- * ValidationFailedException
- *
- * @author Joseph Bielawski <stloyd@gmail.com>
- */
-class ValidationFailedException extends ErrorException
-{
-
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/HttpClient.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/HttpClient.php
deleted file mode 100644
index 974b57ad8a9566b8099c6f42ae755d7d1ad0bfc5..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/HttpClient.php
+++ /dev/null
@@ -1,213 +0,0 @@
-<?php namespace Gitlab\HttpClient;
-
-use Buzz\Client\ClientInterface;
-use Buzz\Listener\ListenerInterface;
-
-use Gitlab\Exception\ErrorException;
-use Gitlab\Exception\RuntimeException;
-use Gitlab\HttpClient\Listener\ErrorListener;
-use Gitlab\HttpClient\Message\Request;
-use Gitlab\HttpClient\Message\Response;
-
-/**
- * Performs requests on Gitlab API. API documentation should be self-explanatory.
- *
- * @author Joseph Bielawski <stloyd@gmail.com>
- * @author Matt Humphrey <matt@m4tt.co>
- */
-class HttpClient implements HttpClientInterface
-{
-    /**
-     * @var array
-     */
-    protected $options = array(
-        'user_agent'  => 'php-gitlab-api (http://github.com/m4tthumphrey/php-gitlab-api)',
-        'timeout'     => 10,
-    );
-
-    /**
-     * @var string
-     */
-    protected $baseUrl;
-
-    /**
-     * @var ListenerInterface[]
-     */
-    protected $listeners = array();
-    /**
-     * @var array
-     */
-    protected $headers = array();
-
-    /**
-     * @var Response
-     */
-    private $lastResponse;
-
-    /**
-     * @var Request
-     */
-    private $lastRequest;
-
-    /**
-     * @param string $baseUrl
-     * @param array $options
-     * @param ClientInterface $client
-     */
-    public function __construct($baseUrl, array $options, ClientInterface $client)
-    {
-        $this->baseUrl = $baseUrl;
-        $this->options = array_merge($this->options, $options);
-        $this->client  = $client;
-
-        $this->addListener(new ErrorListener($this->options));
-
-        $this->clearHeaders();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setOption($name, $value)
-    {
-        $this->options[$name] = $value;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setHeaders(array $headers)
-    {
-        $this->headers = array_merge($this->headers, $headers);
-    }
-
-    /**
-     * Clears used headers
-     */
-    public function clearHeaders()
-    {
-        $this->headers = array();
-    }
-
-    /**
-     * @param ListenerInterface $listener
-     */
-    public function addListener(ListenerInterface $listener)
-    {
-        $this->listeners[get_class($listener)] = $listener;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function get($path, array $parameters = array(), array $headers = array())
-    {
-        if (0 < count($parameters)) {
-            $path .= (false === strpos($path, '?') ? '?' : '&').http_build_query($parameters, '', '&');
-        }
-
-        return $this->request($path, array(), 'GET', $headers);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function post($path, array $parameters = array(), array $headers = array())
-    {
-        return $this->request($path, $parameters, 'POST', $headers);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function patch($path, array $parameters = array(), array $headers = array())
-    {
-        return $this->request($path, $parameters, 'PATCH', $headers);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function delete($path, array $parameters = array(), array $headers = array())
-    {
-        return $this->request($path, $parameters, 'DELETE', $headers);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function put($path, array $parameters = array(), array $headers = array())
-    {
-        return $this->request($path, $parameters, 'PUT', $headers);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function request($path, array $parameters = array(), $httpMethod = 'GET', array $headers = array())
-    {
-        $path = trim($this->baseUrl.$path, '/');
-
-        $request = $this->createRequest($httpMethod, $path);
-        $request->addHeaders($headers);
-        $request->setContent(http_build_query($parameters));
-
-        $hasListeners = 0 < count($this->listeners);
-        if ($hasListeners) {
-            foreach ($this->listeners as $listener) {
-                $listener->preSend($request);
-            }
-        }
-
-        $response = new Response();
-
-        try {
-            $this->client->send($request, $response);
-        } catch (\LogicException $e) {
-            throw new ErrorException($e->getMessage());
-        } catch (\RuntimeException $e) {
-            throw new RuntimeException($e->getMessage());
-        }
-
-        $this->lastRequest  = $request;
-        $this->lastResponse = $response;
-
-        if ($hasListeners) {
-            foreach ($this->listeners as $listener) {
-                $listener->postSend($request, $response);
-            }
-        }
-
-        return $response;
-    }
-
-    /**
-     * @return Request
-     */
-    public function getLastRequest()
-    {
-        return $this->lastRequest;
-    }
-
-    /**
-     * @return Response
-     */
-    public function getLastResponse()
-    {
-        return $this->lastResponse;
-    }
-
-    /**
-     * @param string $httpMethod
-     * @param string $url
-     * @return Request
-     */
-    private function createRequest($httpMethod, $url)
-    {
-        $request = new Request($httpMethod);
-        $request->setHeaders($this->headers);
-        $request->fromUrl($url);
-
-        return $request;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/HttpClientInterface.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/HttpClientInterface.php
deleted file mode 100644
index ef268017b9b31caac1e9065cdd9a567fae05ab60..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/HttpClientInterface.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php namespace Gitlab\HttpClient;
-
-use Gitlab\Exception\InvalidArgumentException;
-
-/**
- * Performs requests on Gitlab API. API documentation should be self-explanatory.
- *
- * @author Joseph Bielawski <stloyd@gmail.com>
- * @author Matt Humphrey <matt@m4tt.co>
- */
-interface HttpClientInterface
-{
-    /**
-     * Send a GET request
-     *
-     * @param string $path       Request path
-     * @param array  $parameters GET Parameters
-     * @param array  $headers    Reconfigure the request headers for this call only
-     *
-     * @return array Data
-     */
-    public function get($path, array $parameters = array(), array $headers = array());
-
-    /**
-     * Send a POST request
-     *
-     * @param string $path       Request path
-     * @param array  $parameters POST Parameters
-     * @param array  $headers    Reconfigure the request headers for this call only
-     *
-     * @return array Data
-     */
-    public function post($path, array $parameters = array(), array $headers = array());
-
-    /**
-     * Send a PATCH request
-     *
-     * @param string $path       Request path
-     * @param array  $parameters PATCH Parameters
-     * @param array  $headers    Reconfigure the request headers for this call only
-     *
-     * @return array Data
-     */
-    public function patch($path, array $parameters = array(), array $headers = array());
-
-    /**
-     * Send a PUT request
-     *
-     * @param string $path       Request path
-     * @param array  $parameters PUT Parameters
-     * @param array  $headers    Reconfigure the request headers for this call only
-     *
-     * @return array Data
-     */
-    public function put($path, array $parameters = array(), array $headers = array());
-
-    /**
-     * Send a DELETE request
-     *
-     * @param string $path       Request path
-     * @param array  $parameters DELETE Parameters
-     * @param array  $headers    Reconfigure the request headers for this call only
-     *
-     * @return array Data
-     */
-    public function delete($path, array $parameters = array(), array $headers = array());
-
-    /**
-     * Send a request to the server, receive a response,
-     * decode the response and returns an associative array
-     *
-     * @param string $path       Request API path
-     * @param array  $parameters Parameters
-     * @param string $httpMethod HTTP method to use
-     * @param array  $headers    Request headers
-     *
-     * @return array Data
-     */
-    public function request($path, array $parameters = array(), $httpMethod = 'GET', array $headers = array());
-
-    /**
-     * Change an option value.
-     *
-     * @param string $name  The option name
-     * @param mixed  $value The value
-     *
-     * @throws InvalidArgumentException
-     */
-    public function setOption($name, $value);
-
-    /**
-     * Set HTTP headers
-     *
-     * @param array $headers
-     */
-    public function setHeaders(array $headers);
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Listener/AuthListener.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Listener/AuthListener.php
deleted file mode 100644
index 27164112280cd918457cbaa4af00b0fc4afc453c..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Listener/AuthListener.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php namespace Gitlab\HttpClient\Listener;
-
-use Gitlab\Client;
-use Gitlab\Exception\InvalidArgumentException;
-
-use Buzz\Listener\ListenerInterface;
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-use Buzz\Util\Url;
-
-/**
- * @author Joseph Bielawski <stloyd@gmail.com>
- * @author Matt Humphrey <matt@m4tt.co>
- */
-class AuthListener implements ListenerInterface
-{
-    /**
-     * @var string
-     */
-    private $method;
-
-    /**
-     * @var string
-     */
-    private $token;
-
-    /**
-     * @var string|null
-     */
-    private $sudo;
-
-    /**
-     * @param string      $method
-     * @param string      $token
-     * @param string|null $sudo
-     */
-    public function __construct($method, $token, $sudo = null)
-    {
-        $this->method  = $method;
-        $this->token = $token;
-        $this->sudo = $sudo;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @throws InvalidArgumentException
-     */
-    public function preSend(RequestInterface $request)
-    {
-        // Skip by default
-        if (null === $this->method) {
-            return;
-        }
-
-        switch ($this->method) {
-            case Client::AUTH_HTTP_TOKEN:
-                $request->addHeader('PRIVATE-TOKEN: '.$this->token);
-                if (!is_null($this->sudo)) {
-                    $request->addHeader('SUDO: '.$this->sudo);
-                }
-                break;
-
-            case Client::AUTH_URL_TOKEN:
-                $url  = $request->getUrl();
-
-                $query = array(
-                    'private_token' => $this->token
-                );
-
-                if (!is_null($this->sudo)) {
-                    $query['sudo'] = $this->sudo;
-                }
-
-                $url .= (false === strpos($url, '?') ? '?' : '&').utf8_encode(http_build_query($query, '', '&'));
-
-                $request->fromUrl(new Url($url));
-                break;
-
-            case Client::AUTH_OAUTH_TOKEN:
-                $request->addHeader('Authorization: Bearer '.$this->token);
-                if (!is_null($this->sudo)) {
-                    $request->addHeader('SUDO: '.$this->sudo);
-                }
-                break;
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function postSend(RequestInterface $request, MessageInterface $response)
-    {
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Listener/ErrorListener.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Listener/ErrorListener.php
deleted file mode 100644
index 4ec931cbb24c16df98cd429ec08ad552cc5d62fa..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Listener/ErrorListener.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php namespace Gitlab\HttpClient\Listener;
-
-use Buzz\Listener\ListenerInterface;
-use Buzz\Message\MessageInterface;
-use Buzz\Message\RequestInterface;
-use Gitlab\Exception\ErrorException;
-use Gitlab\Exception\RuntimeException;
-
-/**
- * @author Joseph Bielawski <stloyd@gmail.com>
- * @author Matt Humphrey <git@m4tt.co>
- */
-class ErrorListener implements ListenerInterface
-{
-    /**
-     * @var array
-     */
-    private $options;
-
-    /**
-     * @param array $options
-     */
-    public function __construct(array $options)
-    {
-        $this->options = $options;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function preSend(RequestInterface $request)
-    {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function postSend(RequestInterface $request, MessageInterface $response)
-    {
-        /** @var $response \Gitlab\HttpClient\Message\Response */
-        if ($response->isClientError() || $response->isServerError()) {
-            $content = $response->getContent();
-            if (is_array($content) && isset($content['message'])) {
-                if (400 == $response->getStatusCode()) {
-                    $message = $this->parseMessage($content['message']);
-
-                    throw new ErrorException($message, 400);
-                }
-            }
-
-            $errorMessage = null;
-            if (isset($content['error'])) {
-                $errorMessage = implode("\n", $content['error']);
-            } elseif (isset($content['message'])) {
-                $errorMessage = $this->parseMessage($content['message']);
-            } else {
-                $errorMessage = $content;
-            }
-
-            throw new RuntimeException($errorMessage, $response->getStatusCode());
-        }
-    }
-
-    /**
-     * @param mixed $message
-     * @return string
-     */
-    protected function parseMessage($message)
-    {
-        $string = $message;
-
-        if (is_array($message)) {
-            $format = '"%s" %s';
-            $errors = array();
-
-            foreach ($message as $field => $messages) {
-                if (is_array($messages)) {
-                    $messages = array_unique($messages);
-                    foreach ($messages as $error) {
-                        $errors[] = sprintf($format, $field, $error);
-                    }
-                } elseif (is_integer($field)) {
-                    $errors[] = $messages;
-                } else {
-                    $errors[] = sprintf($format, $field, $messages);
-                }
-            }
-
-            $string = implode(', ', $errors);
-        }
-
-        return $string;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Message/Request.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Message/Request.php
deleted file mode 100644
index 41a950f35f3292a50ec7a06a4d4440ce3a20eadc..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Message/Request.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php namespace Gitlab\HttpClient\Message;
-
-use Buzz\Message\Request as BaseRequest;
-
-class Request extends BaseRequest
-{
-
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Message/Response.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Message/Response.php
deleted file mode 100644
index cfe7823f57240926abc2c441c266749dd7ca41b0..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/HttpClient/Message/Response.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php namespace Gitlab\HttpClient\Message;
-
-use Buzz\Message\Response as BaseResponse;
-
-class Response extends BaseResponse
-{
-    /**
-     * {@inheritDoc}
-     */
-    public function getContent()
-    {
-        $response = parent::getContent();
-
-        if ($this->getHeader('Content-Type') === 'application/json') {
-            $content  = json_decode($response, true);
-    
-            if (JSON_ERROR_NONE !== json_last_error()) {
-                return $response;
-            }
-    
-            return $content;
-        }
-
-        return $response;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/AbstractModel.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/AbstractModel.php
deleted file mode 100644
index 7c11d4b21eb6c62f03ac12525ac7a1ee1b8179b6..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/AbstractModel.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-use Gitlab\Exception\RuntimeException;
-use Gitlab\Api\AbstractApi;
-
-abstract class AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties;
-
-    /**
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * @var Client
-     */
-    protected $client;
-
-    /**
-     * @return Client
-     */
-    public function getClient()
-    {
-        return $this->client;
-    }
-
-    /**
-     * @param Client $client
-     * @return $this
-     */
-    public function setClient(Client $client = null)
-    {
-        if (null !== $client) {
-            $this->client = $client;
-        }
-
-        return $this;
-    }
-
-    /**
-     * @param string $api
-     * @return AbstractApi|mixed
-     */
-    public function api($api)
-    {
-        return $this->getClient()->api($api);
-    }
-
-    /**
-     * @param array $data
-     * @return $this
-     */
-    protected function hydrate(array $data = array())
-    {
-        if (!empty($data)) {
-            foreach ($data as $field => $value) {
-                $this->setData($field, $value);
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * @param string $field
-     * @param mixed $value
-     * @return $this
-     */
-    protected function setData($field, $value)
-    {
-        if (in_array($field, static::$properties)) {
-            $this->data[$field] = $value;
-        }
-
-        return $this;
-    }
-
-    /**
-     * @return array
-     */
-    public function getData()
-    {
-        return $this->data;
-    }
-
-    /**
-     * @param string $property
-     * @param mixed $value
-     * @throws RuntimeException
-     */
-    public function __set($property, $value)
-    {
-        throw new RuntimeException('Model properties are immutable');
-    }
-
-    /**
-     * @param string $property
-     * @return mixed
-     */
-    public function __get($property)
-    {
-        if (!in_array($property, static::$properties)) {
-            throw new RuntimeException(sprintf(
-                'Property "%s" does not exist for %s object',
-                $property, get_called_class()
-            ));
-        }
-
-        if (isset($this->data[$property])) {
-            return $this->data[$property];
-        }
-
-        return null;
-    }
-
-    /**
-     * @param string $property
-     * @return bool
-     */
-    public function __isset($property)
-    {
-        return isset($this->data[$property]);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Branch.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Branch.php
deleted file mode 100644
index b5de63f7450e6a67477691ed28b86ea738a90a30..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Branch.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-use Gitlab\Api\AbstractApi as Api;
-
-/**
- * Class Branch
- *
- * @property-read string $name
- * @property-read bool $protected
- * @property-read Commit $commit
- * @property-read Project $project
- */
-class Branch extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'name',
-        'commit',
-        'project',
-        'protected'
-    );
-
-    /**
-     * @param Client  $client
-     * @param Project $project
-     * @param array   $data
-     * @return Branch
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $branch = new static($project, $data['name'], $client);
-
-        if (isset($data['commit'])) {
-            $data['commit'] = Commit::fromArray($client, $project, $data['commit']);
-        }
-
-        return $branch->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param string $name
-     * @param Client $client
-     */
-    public function __construct(Project $project, $name = null, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-        $this->setData('name', $name);
-    }
-
-    /**
-     * @return Branch
-     */
-    public function show()
-    {
-        $data = $this->api('repositories')->branch($this->project->id, $this->name);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @return Branch
-     */
-    public function protect()
-    {
-        $data = $this->api('repositories')->protectBranch($this->project->id, $this->name);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @return Branch
-     */
-    public function unprotect()
-    {
-        $data = $this->api('repositories')->unprotectBranch($this->project->id, $this->name);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @return bool
-     */
-    public function delete()
-    {
-        $this->api('repositories')->deleteBranch($this->project->id, $this->name);
-
-        return true;
-    }
-
-    /**
-     * @param int $page
-     * @param int $per_page
-     * @return Commit[]
-     */
-    public function commits($page = 1, $per_page = Api::PER_PAGE)
-    {
-        return $this->project->commits($page, $per_page, $this->name);
-    }
-
-    /**
-     * @param string $file_path
-     * @param string $content
-     * @param string $commit_message
-     * @return File
-     */
-    public function createFile($file_path, $content, $commit_message)
-    {
-        $data = $this->api('repositories')->createFile($this->project->id, $file_path, $content, $this->name, $commit_message);
-
-        return File::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @param string $file_path
-     * @param string $content
-     * @param string $commit_message
-     * @return File
-     */
-    public function updateFile($file_path, $content, $commit_message)
-    {
-        $data = $this->api('repositories')->updateFile($this->project->id, $file_path, $content, $this->name, $commit_message);
-
-        return File::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @param string $file_path
-     * @param string $commit_message
-     * @return bool
-     */
-    public function deleteFile($file_path, $commit_message)
-    {
-        $this->api('repositories')->deleteFile($this->project->id, $file_path, $this->name, $commit_message);
-
-        return true;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Commit.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Commit.php
deleted file mode 100644
index 9b007325515feff26f7a49e1269403fd331180e2..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Commit.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Commit
- *
- * @property-read string $id
- * @property-read string $short_id
- * @property-read string $title
- * @property-read string $message
- * @property-read string $author_name
- * @property-read string $author_email
- * @property-read string $authored_date
- * @property-read string $committed_date
- * @property-read string $created_at
- * @property-read Commit[] $parents
- * @property-read Node[] $tree
- * @property-read User $committer
- * @property-read User $author
- * @property-read Project $project
- */
-class Commit extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'short_id',
-        'parents',
-        'tree',
-        'title',
-        'message',
-        'author',
-        'author_name',
-        'author_email',
-        'committer',
-        'authored_date',
-        'committed_date',
-        'created_at',
-        'project'
-    );
-
-    /**
-     * @param Client  $client
-     * @param Project $project
-     * @param array   $data
-     * @return Commit
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $commit = new static($project, $data['id'], $client);
-
-        if (isset($data['parents'])) {
-            $parents = array();
-            foreach ($data['parents'] as $parent) {
-                $parents[] = static::fromArray($client, $project, $parent);
-            }
-
-            $data['parents'] = $parents;
-        }
-
-        if (isset($data['author'])) {
-            $data['author'] = User::fromArray($client, $data['author']);
-        }
-
-        if (isset($data['committer'])) {
-            $data['committer'] = User::fromArray($client, $data['committer']);
-        }
-
-        return $commit->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param int $id
-     * @param Client  $client
-     */
-    public function __construct(Project $project, $id = null, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-        $this->setData('id', $id);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/CommitNote.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/CommitNote.php
deleted file mode 100644
index 4b455c7f160979748b8cd1744bfcedbc14b2abfd..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/CommitNote.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class CommitNote
- *
- * @property-read string $note
- * @property-read string $path
- * @property-read string $line
- * @property-read string $line_type
- * @property-read User $author
- */
-class CommitNote extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'note',
-        'path',
-        'line',
-        'line_type',
-        'author'
-    );
-
-    /**
-     * @param Client $client
-     * @param array  $data
-     * @return CommitNote
-     */
-    public static function fromArray(Client $client, array $data)
-    {
-        $comment = new static($client);
-
-        if (isset($data['author'])) {
-            $data['author'] = User::fromArray($client, $data['author']);
-        }
-
-        return $comment->hydrate($data);
-    }
-
-    /**
-     * @param Client $client
-     */
-    public function __construct(Client $client = null)
-    {
-        $this->setClient($client);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Comparison.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Comparison.php
deleted file mode 100644
index 27901829d5b6b1673677f911f9b33816ead635f9..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Comparison.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Comparison
- *
- * @property-read bool $compare_timeout
- * @property-read bool $compare_same_ref
- * @property-read Commit $commit
- * @property-read Commit[] $commits
- * @property-read Diff[] $diffs
- * @property-read Project $project
- */
-class Comparison extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'commit',
-        'commits',
-        'diffs',
-        'compare_timeout',
-        'compare_same_ref',
-        'project'
-    );
-
-    /**
-     * @param Client $client
-     * @param Project $project
-     * @param array $data
-     * @return Comparison
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $file = new static($project, $client);
-
-        if (isset($data['commit'])) {
-            $data['commit'] = Commit::fromArray($client, $project, $data['commit']);
-        }
-
-        if (isset($data['commits'])) {
-            $commits = array();
-            foreach ($data['commits'] as $commit) {
-                $commits[] = Commit::fromArray($client, $project, $commit);
-            }
-
-            $data['commits'] = $commits;
-        }
-
-        if (isset($data['diffs'])) {
-            $diffs = array();
-            foreach ($data['diffs'] as $diff) {
-                $diffs[] = Diff::fromArray($client, $project, $diff);
-            }
-
-            $data['diffs'] = $diffs;
-        }
-
-        return $file->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param Client $client
-     */
-    public function __construct(Project $project, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Contributor.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Contributor.php
deleted file mode 100644
index 658da48bcfc634bb58db54ac959a168d9f0e4119..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Contributor.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Contributor
- *
- * @property-read string $name
- * @property-read string $email
- * @property-read int $commits
- * @property-read int $additions
- * @property-read int $deletions
- * @property-read Project $project
- */
-class Contributor extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'name',
-        'email',
-        'commits',
-        'additions',
-        'deletions',
-        'project'
-    );
-
-    /**
-     * @param Client $client
-     * @param Project $project
-     * @param array $data
-     * @return Contributor
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $contributor = new static($project, $client);
-
-        return $contributor->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param Client $client
-     */
-    public function __construct(Project $project, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Diff.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Diff.php
deleted file mode 100644
index 5fd95d5ac62a250a04fd07aed5c85624009d75cb..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Diff.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Diff
- *
- * @property-read string $old_path
- * @property-read string $new_path
- * @property-read string $a_mode
- * @property-read string $b_mode
- * @property-read string $diff
- * @property-read bool $new_file
- * @property-read bool $renamed_file
- * @property-read bool $deleted_file
- * @property-read Project $project
- */
-class Diff extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'old_path',
-        'new_path',
-        'a_mode',
-        'b_mode',
-        'diff',
-        'new_file',
-        'renamed_file',
-        'deleted_file',
-        'project'
-    );
-
-    /**
-     * @param Client $client
-     * @param Project $project
-     * @param array $data
-     * @return Diff
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $diff = new static($project, $client);
-
-        return $diff->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param Client $client
-     */
-    public function __construct(Project $project, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-    }
-
-    /**
-     * @return string
-     */
-    public function __toString()
-    {
-        return $this->diff;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Event.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Event.php
deleted file mode 100644
index 83565e174da9bebd2b611b814ea43c58910a790a..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Event.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Event
- *
- * @property-read string $title
- * @property-read int $id
- * @property-read string $action_name
- * @property-read string $data
- * @property-read int $target_id
- * @property-read string $target_type
- * @property-read string $target_title
- * @property-read int $author_id
- * @property-read string $author_username
- * @property-read User $author
- * @property-read Project $project
- */
-class Event extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'title',
-        'project_id',
-        'action_name',
-        'target_id',
-        'target_type',
-        'author_id',
-        'author_username',
-        'data',
-        'target_title',
-        'author',
-        'project'
-    );
-
-    /**
-     * @param Client  $client
-     * @param Project $project
-     * @param array   $data
-     * @return Event
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $event = new static($project, $client);
-
-        if (isset($data['author_id'])) {
-            $data['author'] = new User($data['author_id'], $client);
-        }
-
-        return $event->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param Client  $client
-     */
-    public function __construct(Project $project, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/File.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/File.php
deleted file mode 100644
index b2edac1273e5e11c2b53c3b8283307905829a0a2..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/File.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class File
- *
- * @property-read string $file_path
- * @property-read string $branch_name
- * @property-read Project $project
- */
-class File extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'project',
-        'file_path',
-        'branch_name'
-    );
-
-    /**
-     * @param Client $client
-     * @param Project $project
-     * @param array $data
-     * @return File
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $file = new static($project, $data['file_path'], $client);
-
-        return $file->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param string $file_path
-     * @param Client $client
-     */
-    public function __construct(Project $project, $file_path = null, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-        $this->setData('file_path', $file_path);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Group.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Group.php
deleted file mode 100644
index 614d50ffb82e1c42fafaeb1b0ffe5984846f5522..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Group.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Group
- *
- * @property-read int $id
- * @property-read string $name
- * @property-read string $path
- * @property-read string $description
- * @property-read Project[] $projects
- */
-class Group extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'name',
-        'path',
-        'description',
-        'projects'
-    );
-
-    /**
-     * @param Client $client
-     * @param array  $data
-     * @return Group
-     */
-    public static function fromArray(Client $client, array $data)
-    {
-        $group = new static($data['id'], $client);
-
-        if (isset($data['projects'])) {
-            $projects = array();
-            foreach ($data['projects'] as $project) {
-                $projects[] = Project::fromArray($client, $project);
-            }
-            $data['projects'] = $projects;
-        }
-
-        return $group->hydrate($data);
-    }
-
-    /**
-     * @param Client $client
-     * @param string $name
-     * @param string $path
-     * @return Group
-     */
-    public static function create(Client $client, $name, $path)
-    {
-        $data = $client->api('groups')->create($name, $path);
-
-        return static::fromArray($client, $data);
-    }
-
-    /**
-     * @param int $id
-     * @param Client $client
-     */
-    public function __construct($id, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('id', $id);
-    }
-
-    /**
-     * @return Group
-     */
-    public function show()
-    {
-        $data = $this->api('groups')->show($this->id);
-
-        return Group::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param int $project_id
-     * @return Group
-     */
-    public function transfer($project_id)
-    {
-        $data = $this->api('groups')->transfer($this->id, $project_id);
-
-        return Group::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @return User[]
-     */
-    public function members()
-    {
-        $data = $this->api('groups')->members($this->id);
-
-        $members = array();
-        foreach ($data as $member) {
-            $members[] = User::fromArray($this->getClient(), $member);
-        }
-
-        return $members;
-    }
-
-    /**
-     * @param int $user_id
-     * @param int $access_level
-     * @return User
-     */
-    public function addMember($user_id, $access_level)
-    {
-        $data = $this->api('groups')->addMember($this->id, $user_id, $access_level);
-
-        return User::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param int $user_id
-     * @return bool
-     */
-    public function removeMember($user_id)
-    {
-        $this->api('groups')->removeMember($this->id, $user_id);
-
-        return true;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Hook.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Hook.php
deleted file mode 100644
index 15bda3992286825d86ce990aee0804b963ab908d..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Hook.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Hook
- *
- * @property-read int $id
- * @property-read string $url
- * @property-read string $created_at
- */
-class Hook extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'url',
-        'created_at'
-    );
-
-    /**
-     * @param Client $client
-     * @param array  $data
-     * @return Hook
-     */
-    public static function fromArray(Client $client, array $data)
-    {
-        $hook = new static($data['id'], $client);
-
-        return $hook->hydrate($data);
-    }
-
-    /**
-     * @param Client $client
-     * @param string $url
-     * @return Hook
-     */
-    public static function create(Client $client, $url)
-    {
-        $data = $client->api('system_hooks')->create($url);
-
-        return static::fromArray($client, $data);
-    }
-
-    /**
-     * @param int $id
-     * @param Client $client
-     */
-    public function __construct($id, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('id', $id);
-    }
-
-    /**
-     * @return bool
-     */
-    public function test()
-    {
-        $this->api('system_hooks')->test($this->id);
-
-        return true;
-    }
-
-    /**
-     * @return bool
-     */
-    public function delete()
-    {
-        $this->api('system_hooks')->remove($this->id);
-
-        return true;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Issue.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Issue.php
deleted file mode 100644
index 86c7e2adda52c211fabbd724fe239536041df565..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Issue.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Issue
- *
- * @property-read int $id
- * @property-read int $iid
- * @property-read int $project_id,
- * @property-read string $title
- * @property-read string $description
- * @property-read array $labels
- * @property-read bool $closed
- * @property-read string $updated_at
- * @property-read string $created_at
- * @property-read string $state
- * @property-read User $assignee
- * @property-read User $author
- * @property-read Milestone $milestone
- * @property-read Project $project
- */
-class Issue extends AbstractModel implements Noteable
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'iid',
-        'project_id',
-        'title',
-        'description',
-        'labels',
-        'milestone',
-        'assignee',
-        'author',
-        'closed',
-        'updated_at',
-        'created_at',
-        'project',
-        'state'
-    );
-
-    /**
-     * @param Client  $client
-     * @param Project $project
-     * @param array   $data
-     * @return Issue
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $issue = new static($project, $data['id'], $client);
-
-        if (isset($data['author'])) {
-            $data['author'] = User::fromArray($client, $data['author']);
-        }
-
-        if (isset($data['assignee'])) {
-            $data['assignee'] = User::fromArray($client, $data['assignee']);
-        }
-
-        return $issue->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param int $id
-     * @param Client $client
-     */
-    public function __construct(Project $project, $id = null, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-        $this->setData('id', $id);
-    }
-
-    /**
-     * @return Issue
-     */
-    public function show()
-    {
-        $data = $this->api('issues')->show($this->project->id, $this->id);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @param array $params
-     * @return Issue
-     */
-    public function update(array $params)
-    {
-        $data = $this->api('issues')->update($this->project->id, $this->id, $params);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @param string $comment
-     * @return Issue
-     */
-    public function close($comment = null)
-    {
-        if ($comment) {
-            $this->addComment($comment);
-        }
-
-        return $this->update(array(
-            'state_event' => 'close'
-        ));
-    }
-
-    /**
-     * @return Issue
-     */
-    public function open()
-    {
-        return $this->update(array(
-            'state_event' => 'reopen'
-        ));
-    }
-
-    /**
-     * @return Issue
-     */
-    public function reopen()
-    {
-        return $this->open();
-    }
-
-    /**
-     * @param string $comment
-     * @return Note
-     */
-    public function addComment($comment)
-    {
-        $data = $this->api('issues')->addComment($this->project->id, $this->id, array(
-            'body' => $comment
-        ));
-
-        return Note::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @return Note[]
-     */
-    public function showComments()
-    {
-        $notes = array();
-        $data = $this->api('issues')->showComments($this->project->id, $this->id);
-
-        foreach ($data as $note) {
-            $notes[] = Note::fromArray($this->getClient(), $this, $note);
-        }
-
-        return $notes;
-    }
-
-    /**
-     * @return bool
-     */
-    public function isClosed()
-    {
-        if ($this->state == 'closed') {
-            return true;
-        }
-
-        return false;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Key.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Key.php
deleted file mode 100644
index 5e6aebfa58ca38c68f91ff412874ff041d8a1015..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Key.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Key
- *
- * @property-read int $id
- * @property-read string $title
- * @property-read string $key
- * @property-read string $created_at
- */
-class Key extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'title',
-        'key',
-        'created_at'
-    );
-
-    /**
-     * @param Client $client
-     * @param array $data
-     * @return Key
-     */
-    public static function fromArray(Client $client, array $data)
-    {
-        $key = new static($client);
-
-        return $key->hydrate($data);
-    }
-
-    /**
-     * @param Client $client
-     */
-    public function __construct(Client $client = null)
-    {
-        $this->setClient($client);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Label.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Label.php
deleted file mode 100644
index 5c8a2091984e77c06616581f8e6ae69ed7b663fb..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Label.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Label
- *
- * @property-read string $name
- * @property-read string $color
- */
-class Label extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'name',
-        'color'
-    );
-
-    /**
-     * @param Client $client
-     * @param Project $project
-     * @param array  $data
-     * @return Label
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $label = new static($project, $client);
-
-        return $label->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param Client $client
-     */
-    public function __construct(Project $project, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/MergeRequest.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/MergeRequest.php
deleted file mode 100644
index 73eaa49ef9cbdd8b014e1ce86e6b7ac8b7fad273..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/MergeRequest.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class MergeRequest
- *
- * @property-read int $id
- * @property-read int $iid
- * @property-read string $target_branch
- * @property-read string $source_branch
- * @property-read int $project_id
- * @property-read string $title
- * @property-read bool $closed
- * @property-read bool $merged
- * @property-read string $state
- * @property-read int $source_project_id
- * @property-read int $target_project_id
- * @property-read int $upvotes
- * @property-read int $downvotes
- * @property-read array $labels
- * @property-read User $author
- * @property-read User $assignee
- * @property-read Project $project
- * @property-read Milestone $milestone
- * @property-read File[] $files
- */
-class MergeRequest extends AbstractModel implements Noteable
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'iid',
-        'target_branch',
-        'source_branch',
-        'project_id',
-        'title',
-        'closed',
-        'merged',
-        'author',
-        'assignee',
-        'project',
-        'state',
-        'source_project_id',
-        'target_project_id',
-        'upvotes',
-        'downvotes',
-        'labels',
-        'milestone',
-        'files'
-    );
-
-    /**
-     * @param Client  $client
-     * @param Project $project
-     * @param array   $data
-     * @return MergeRequest
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $mr = new static($project, $data['id'], $client);
-
-        if (isset($data['author'])) {
-            $data['author'] = User::fromArray($client, $data['author']);
-        }
-
-        if (isset($data['assignee'])) {
-            $data['assignee'] = User::fromArray($client, $data['assignee']);
-        }
-
-        if (isset($data['milestone'])) {
-            $data['milestone'] = Milestone::fromArray($client, $project, $data['milestone']);
-        }
-
-        if (isset($data['files'])) {
-            $files = array();
-            foreach ($data['files'] as $file) {
-                $files[] = File::fromArray($client, $project, $file);
-            }
-
-            $data['files'] = $files;
-        }
-
-        return $mr->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param int $id
-     * @param Client $client
-     */
-    public function __construct(Project $project, $id = null, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-        $this->setData('id', $id);
-    }
-
-    /**
-     * @return MergeRequest
-     */
-    public function show()
-    {
-        $data = $this->api('mr')->show($this->project->id, $this->id);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @param array $params
-     * @return MergeRequest
-     */
-    public function update(array $params)
-    {
-        $data = $this->api('mr')->update($this->project->id, $this->id, $params);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @param string $comment
-     * @return MergeRequest
-     */
-    public function close($comment = null)
-    {
-        if ($comment) {
-            $this->addComment($comment);
-        }
-
-        return $this->update(array(
-            'state_event' => 'close'
-        ));
-    }
-
-    /**
-     * @return MergeRequest
-     */
-    public function reopen()
-    {
-        return $this->update(array(
-            'state_event' => 'reopen'
-        ));
-    }
-
-    /**
-     * @return MergeRequest
-     */
-    public function open()
-    {
-        return $this->reopen();
-    }
-
-    /**
-     * @param string $message
-     * @return MergeRequest
-     */
-    public function merge($message = null)
-    {
-        $data = $this->api('mr')->merge($this->project->id, $this->id, array(
-            'merge_commit_message' => $message
-        ));
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @return MergeRequest
-     */
-    public function merged()
-    {
-        return $this->update(array(
-            'state_event' => 'merge'
-        ));
-    }
-
-    /**
-     * @param string $comment
-     * @return Note
-     */
-    public function addComment($comment)
-    {
-        $data = $this->api('mr')->addComment($this->project->id, $this->id, $comment);
-
-        return Note::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @return Note[]
-     */
-    public function showComments()
-    {
-        $notes = array();
-        $data = $this->api('mr')->showComments($this->project->id, $this->id);
-
-        foreach ($data as $note) {
-            $notes[] = Note::fromArray($this->getClient(), $this, $note);
-        }
-
-        return $notes;
-    }
-
-    /**
-     * @return bool
-     */
-    public function isClosed()
-    {
-        if (in_array($this->state, array('closed', 'merged'))) {
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * @return MergeRequest
-     */
-    public function changes()
-    {
-        $data = $this->api('mr')->changes($this->project->id, $this->id);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Milestone.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Milestone.php
deleted file mode 100644
index c59afca38bf63f02c65335b55c5112d15e56ffd8..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Milestone.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Milestone
- *
- * @property-read int $id
- * @property-read int $iid
- * @property-read int $project_id
- * @property-read string $title
- * @property-read string $description
- * @property-read string $due_date
- * @property-read string $state
- * @property-read bool $closed
- * @property-read string $updated_at
- * @property-read string $created_at
- * @property-read Project $project
- */
-class Milestone extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'iid',
-        'project',
-        'project_id',
-        'title',
-        'description',
-        'due_date',
-        'state',
-        'closed',
-        'updated_at',
-        'created_at'
-    );
-
-    /**
-     * @param Client  $client
-     * @param Project $project
-     * @param array   $data
-     * @return Milestone
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $milestone = new static($project, $data['id'], $client);
-
-        return $milestone->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param int $id
-     * @param Client  $client
-     */
-    public function __construct(Project $project, $id, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('id', $id);
-        $this->setData('project', $project);
-    }
-
-    /**
-     * @return Milestone
-     */
-    public function show()
-    {
-        $data = $this->api('milestones')->show($this->project->id, $this->id);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @param array $params
-     * @return Milestone
-     */
-    public function update(array $params)
-    {
-        $data = $this->api('milestones')->update($this->project->id, $this->id, $params);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @return Milestone
-     */
-    public function complete()
-    {
-        return $this->update(array('closed' => true));
-    }
-
-    /**
-     * @return Milestone
-     */
-    public function incomplete()
-    {
-        return $this->update(array('closed' => false));
-    }
-
-    /**
-     * @return Issue[]
-     */
-    public function issues()
-    {
-        $data = $this->api('milestones')->issues($this->project->id, $this->id);
-
-        $issues = array();
-        foreach ($data as $issue) {
-            $issues[] = Issue::fromArray($this->getClient(), $this->project, $issue);
-        }
-
-        return $issues;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Node.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Node.php
deleted file mode 100644
index 8add42a07ae3d06578a7bdfe92e36c81de77b220..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Node.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Node
- *
- * @property-read string $name
- * @property-read string $type
- * @property-read string $mode
- * @property-read int $id
- * @property-read Project $project
- */
-class Node extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'name',
-        'type',
-        'mode',
-        'id',
-        'project'
-    );
-
-    /**
-     * @param Client  $client
-     * @param Project $project
-     * @param array   $data
-     * @return Node
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $node = new static($project, $data['id'], $client);
-
-        return $node->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param int $id
-     * @param Client $client
-     */
-    public function __construct(Project $project, $id = null, Client $client)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-        $this->setData('id', $id);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Note.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Note.php
deleted file mode 100644
index 36afeb1326ed80b72bc6828b8d6d0fd69d17b69f..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Note.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Note
- *
- * @property-read User $author
- * @property-read string $body
- * @property-read string $created_at
- * @property-read string $updated_at
- * @property-read string $parent_type
- * @property-read Issue|MergeRequest $parent
- * @property-read string $attachment
- */
-class Note extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'author',
-        'body',
-        'created_at',
-        'updated_at',
-        'parent_type',
-        'parent',
-        'attachment'
-    );
-
-    /**
-     * @param Client $client
-     * @param Noteable $type
-     * @param array $data
-     * @return mixed
-     */
-    public static function fromArray(Client $client, Noteable $type, array $data)
-    {
-        $comment = new static($type, $client);
-
-        if (isset($data['author'])) {
-            $data['author'] = User::fromArray($client, $data['author']);
-        }
-
-        return $comment->hydrate($data);
-    }
-
-    /**
-     * @param Noteable $type
-     * @param Client $client
-     */
-    public function __construct(Noteable $type, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('parent_type', get_class($type));
-        $this->setData('parent', $type);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Noteable.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Noteable.php
deleted file mode 100644
index 11e2cb6506d4b83e9e6f98875e6de834447ba4d1..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Noteable.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php namespace Gitlab\Model;
-
-interface Noteable
-{
-    /**
-     * @param string $comment
-     * @return Note
-     */
-    public function addComment($comment);
-
-    /**
-     * @return Note[]
-     */
-    public function showComments();
-
-    /**
-     * @param string $comment
-     * @return static
-     */
-    public function close($comment = null);
-
-    /**
-     * @return static
-     */
-    public function open();
-
-    /**
-     * @return static
-     */
-    public function reopen();
-
-    /**
-     * @return bool
-     */
-    public function isClosed();
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Project.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Project.php
deleted file mode 100644
index 1fd4912e512237c9740237d19b9a7c8dd0ee726e..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Project.php
+++ /dev/null
@@ -1,1034 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Api\MergeRequests;
-use Gitlab\Client;
-use Gitlab\Api\AbstractApi as Api;
-
-/**
- * Class Project
- *
- * @property-read int $id
- * @property-read string $code
- * @property-read string $name
- * @property-read string $name_with_namespace
- * @property-read string $description
- * @property-read string $path
- * @property-read string $path_with_namespace
- * @property-read string $ssh_url_to_repo
- * @property-read string $http_url_to_repo
- * @property-read string $web_url
- * @property-read string $default_branch
- * @property-read bool $private
- * @property-read bool $public
- * @property-read bool $issues_enabled
- * @property-read bool $merge_requests_enabled
- * @property-read bool $wall_enabled
- * @property-read bool $wiki_enabled
- * @property-read bool $snippets_enabled
- * @property-read string $created_at
- * @property-read int $greatest_access_level
- * @property-read string $last_activity_at
- * @property-read string $tag_list
- * @property-read User $owner
- * @property-read ProjectNamespace $namespace
- */
-class Project extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'code',
-        'name',
-        'name_with_namespace',
-        'namespace',
-        'description',
-        'path',
-        'path_with_namespace',
-        'ssh_url_to_repo',
-        'http_url_to_repo',
-        'web_url',
-        'default_branch',
-        'owner',
-        'private',
-        'public',
-        'issues_enabled',
-        'merge_requests_enabled',
-        'wall_enabled',
-        'wiki_enabled',
-        'created_at',
-        'greatest_access_level',
-        'last_activity_at',
-        'snippets_enabled',
-        'tag_list'
-    );
-
-    /**
-     * @param Client $client
-     * @param array $data
-     * @return Project
-     */
-    public static function fromArray(Client $client, array $data)
-    {
-        $project = new static($data['id']);
-        $project->setClient($client);
-
-        if (isset($data['owner'])) {
-            $data['owner'] = User::fromArray($client, $data['owner']);
-        }
-
-        if (isset($data['namespace']) && is_array($data['namespace'])) {
-            $data['namespace'] = ProjectNamespace::fromArray($client, $data['namespace']);
-        }
-
-        return $project->hydrate($data);
-    }
-
-    /**
-     * @param Client $client
-     * @param string $name
-     * @param array $params
-     * @return Project
-     */
-    public static function create(Client $client, $name, array $params = array())
-    {
-        $data = $client->api('projects')->create($name, $params);
-
-        return static::fromArray($client, $data);
-    }
-
-    /**
-     * @param int $user_id
-     * @param Client $client
-     * @param string $name
-     * @param array $params
-     * @return Project
-     */
-    public static function createForUser($user_id, Client $client, $name, array $params = array())
-    {
-        $data = $client->api('projects')->createForUser($user_id, $name, $params);
-
-        return static::fromArray($client, $data);
-    }
-    /**
-     * @param int $id
-     * @param Client $client
-     */
-    public function __construct($id = null, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('id', $id);
-    }
-
-    /**
-     * @return Project
-     */
-    public function show()
-    {
-        $data = $this->api('projects')->show($this->id);
-
-        return static::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param array $params
-     * @return Project
-     */
-    public function update(array $params)
-    {
-        $data = $this->api('projects')->update($this->id, $params);
-
-        return static::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @return bool
-     */
-    public function remove()
-    {
-        $this->api('projects')->remove($this->id);
-
-        return true;
-    }
-
-    /**
-     * @param string $username_query
-     * @return User[]
-     */
-    public function members($username_query = null)
-    {
-        $data = $this->api('projects')->members($this->id, $username_query);
-
-        $members = array();
-        foreach ($data as $member) {
-            $members[] = User::fromArray($this->getClient(), $member);
-        }
-
-        return $members;
-    }
-
-    /**
-     * @param int $user_id
-     * @return User
-     */
-    public function member($user_id)
-    {
-        $data = $this->api('projects')->member($this->id, $user_id);
-
-        return User::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param int $user_id
-     * @param int $access_level
-     * @return User
-     */
-    public function addMember($user_id, $access_level)
-    {
-        $data = $this->api('projects')->addMember($this->id, $user_id, $access_level);
-
-        return User::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param int $user_id
-     * @param int $access_level
-     * @return User
-     */
-    public function saveMember($user_id, $access_level)
-    {
-        $data = $this->api('projects')->saveMember($this->id, $user_id, $access_level);
-
-        return User::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param int $user_id
-     * @return bool
-     */
-    public function removeMember($user_id)
-    {
-        $this->api('projects')->removeMember($this->id, $user_id);
-
-        return true;
-    }
-
-    /**
-     * @param int $page
-     * @param int $per_page
-     * @return ProjectHook[]
-     */
-    public function hooks($page = 1, $per_page = Api::PER_PAGE)
-    {
-        $data = $this->api('projects')->hooks($this->id, $page, $per_page);
-
-        $hooks = array();
-        foreach ($data as $hook) {
-            $hooks[] = ProjectHook::fromArray($this->getClient(), $this, $hook);
-        }
-
-        return $hooks;
-    }
-
-    /**
-     * @param int $id
-     * @return ProjectHook
-     */
-    public function hook($id)
-    {
-        $hook = new ProjectHook($this, $id, $this->getClient());
-
-        return $hook->show();
-    }
-
-    /**
-     * @param string $url
-     * @param array $events
-     * @return ProjectHook
-     */
-    public function addHook($url, array $events = array())
-    {
-        $data = $this->api('projects')->addHook($this->id, $url, $events);
-
-        return ProjectHook::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param int $hook_id
-     * @param array $params
-     * @return mixed
-     */
-    public function updateHook($hook_id, array $params)
-    {
-        $hook = new ProjectHook($this, $hook_id, $this->getClient());
-
-        return $hook->update($params);
-    }
-
-    /**
-     * @param int $hook_id
-     * @return bool
-     */
-    public function removeHook($hook_id)
-    {
-        $hook = new ProjectHook($this, $hook_id, $this->getClient());
-
-        return $hook->delete();
-    }
-
-    /**
-     * @return Key[]
-     */
-    public function keys()
-    {
-        $data = $this->api('projects')->keys($this->id);
-
-        $keys = array();
-        foreach ($data as $key) {
-            $hooks[] = Key::fromArray($this->getClient(), $key);
-        }
-
-        return $keys;
-    }
-
-    /**
-     * @param int $key_id
-     * @return Key
-     */
-    public function key($key_id)
-    {
-        $data = $this->api('projects')->key($this->id, $key_id);
-
-        return Key::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param string $title
-     * @param string $key
-     * @return Key
-     */
-    public function addKey($title, $key)
-    {
-        $data = $this->api('projects')->addKey($this->id, $title, $key);
-
-        return Key::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param string $key_id
-     * @return bool
-     */
-    public function removeKey($key_id)
-    {
-        $this->api('projects')->removeKey($this->id, $key_id);
-
-        return true;
-    }
-
-    /**
-     * @param string $name
-     * @param string $ref
-     * @return Branch
-     */
-    public function createBranch($name, $ref)
-    {
-        $data = $this->api('repositories')->createBranch($this->id, $name, $ref);
-
-        return Branch::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param string $name
-     * @return bool
-     */
-    public function deleteBranch($name)
-    {
-        $this->api('repositories')->deleteBranch($this->id, $name);
-
-        return true;
-    }
-
-    /**
-     * @return Branch[]
-     */
-    public function branches()
-    {
-        $data = $this->api('repo')->branches($this->id);
-
-        $branches = array();
-        foreach ($data as $branch) {
-            $branches[] = Branch::fromArray($this->getClient(), $this, $branch);
-        }
-
-        return $branches;
-    }
-
-    /**
-     * @param string $branch_name
-     * @return Branch
-     */
-    public function branch($branch_name)
-    {
-        $branch = new Branch($this, $branch_name);
-        $branch->setClient($this->getClient());
-
-        return $branch->show();
-    }
-
-    /**
-     * @param string $branch_name
-     * @return Branch
-     */
-    public function protectBranch($branch_name)
-    {
-        $branch = new Branch($this, $branch_name);
-        $branch->setClient($this->getClient());
-
-        return $branch->protect();
-    }
-
-    /**
-     * @param string $branch_name
-     * @return Branch
-     */
-    public function unprotectBranch($branch_name)
-    {
-        $branch = new Branch($this, $branch_name);
-        $branch->setClient($this->getClient());
-
-        return $branch->unprotect();
-    }
-
-    /**
-     * @return Tag[]
-     */
-    public function tags()
-    {
-        $data = $this->api('repo')->tags($this->id);
-
-        $tags = array();
-        foreach ($data as $tag) {
-            $tags[] = Tag::fromArray($this->getClient(), $this, $tag);
-        }
-
-        return $tags;
-    }
-
-    /**
-     * @param int $page
-     * @param int $per_page
-     * @param string $ref_name
-     * @return Commit[]
-     */
-    public function commits($page = 0, $per_page = Api::PER_PAGE, $ref_name = null)
-    {
-        $data = $this->api('repo')->commits($this->id, $page, $per_page, $ref_name);
-
-        $commits = array();
-        foreach ($data as $commit) {
-            $commits[] = Commit::fromArray($this->getClient(), $this, $commit);
-        }
-
-        return $commits;
-    }
-
-    /**
-     * @param string $sha
-     * @return Commit
-     */
-    public function commit($sha)
-    {
-        $data = $this->api('repo')->commit($this->id, $sha);
-
-        return Commit::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param string $ref
-     * @param int $page
-     * @param int $per_page
-     * @return Commit[]
-     */
-    public function commitComments($ref, $page = 0, $per_page = Api::PER_PAGE)
-    {
-        $data = $this->api('repo')->commitComments($this->id, $ref, $page, $per_page);
-
-        $comments = array();
-        foreach ($data as $comment) {
-            $comments[] = CommitNote::fromArray($this->getClient(), $comment);
-        }
-
-        return $comments;
-    }
-
-    /**
-     * @param string $ref
-     * @param string $note
-     * @param array $params
-     * @return CommitNote
-     */
-    public function createCommitComment($ref, $note, array $params = array())
-    {
-        $data = $this->api('repo')->createCommitComment($this->id, $ref, $note, $params);
-
-        return CommitNote::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param string $sha
-     * @return string
-     */
-    public function diff($sha)
-    {
-        return $this->api('repo')->diff($this->id, $sha);
-    }
-
-    /**
-     * @param string $from
-     * @param string $to
-     * @return Comparison
-     */
-    public function compare($from, $to)
-    {
-        $data = $this->api('repo')->compare($this->id, $from, $to);
-
-        return Comparison::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param array $params
-     * @return Node[]
-     */
-    public function tree(array $params = array())
-    {
-        $data = $this->api('repo')->tree($this->id, $params);
-
-        $tree = array();
-        foreach ($data as $node) {
-            $tree[] = Node::fromArray($this->getClient(), $this, $node);
-        }
-
-        return $tree;
-    }
-
-    /**
-     * @param string $sha
-     * @param string $filepath
-     * @return string
-     */
-    public function blob($sha, $filepath)
-    {
-        return $this->api('repo')->blob($this->id, $sha, $filepath);
-    }
-
-    /**
-     * @param string $file_path
-     * @param string $content
-     * @param string $branch_name
-     * @param string $commit_message
-     * @return File
-     */
-    public function createFile($file_path, $content, $branch_name, $commit_message)
-    {
-        $data = $this->api('repo')->createFile($this->id, $file_path, $content, $branch_name, $commit_message);
-
-        return File::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param string $file_path
-     * @param string $content
-     * @param string $branch_name
-     * @param string $commit_message
-     * @return File
-     */
-    public function updateFile($file_path, $content, $branch_name, $commit_message)
-    {
-        $data = $this->api('repo')->updateFile($this->id, $file_path, $content, $branch_name, $commit_message);
-
-        return File::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param string $file_path
-     * @param string $branch_name
-     * @param string $commit_message
-     * @return bool
-     */
-    public function deleteFile($file_path, $branch_name, $commit_message)
-    {
-        $this->api('repo')->deleteFile($this->id, $file_path, $branch_name, $commit_message);
-
-        return true;
-    }
-
-    /**
-     * @param int $page
-     * @param int $per_page
-     * @return Event[]
-     */
-    public function events($page = 1, $per_page = Api::PER_PAGE)
-    {
-        $data = $this->api('projects')->events($this->id, $page, $per_page);
-
-        $events = array();
-        foreach ($data as $event) {
-            $events[] = Event::fromArray($this->getClient(), $this, $event);
-        }
-
-        return $events;
-    }
-
-    /**
-     * @param int    $page
-     * @param int    $per_page
-     * @param string $state
-     * @return MergeRequest[]
-     */
-    public function mergeRequests($page = 1, $per_page = Api::PER_PAGE, $state = MergeRequests::STATE_ALL)
-    {
-        $data = $this->api('mr')->$state($this->id, $page, $per_page);
-
-        $mrs = array();
-        foreach ($data as $mr) {
-            $mrs[] = MergeRequest::fromArray($this->getClient(), $this, $mr);
-        }
-
-        return $mrs;
-    }
-
-    /**
-     * @param int $id
-     * @return MergeRequest
-     */
-    public function mergeRequest($id)
-    {
-        $mr = new MergeRequest($this, $id, $this->getClient());
-
-        return $mr->show();
-    }
-
-    /**
-     * @param string $source
-     * @param string $target
-     * @param string $title
-     * @param int $assignee
-     * @param string $description
-     * @return MergeRequest
-     */
-    public function createMergeRequest($source, $target, $title, $assignee = null, $description = null)
-    {
-        $data = $this->api('mr')->create($this->id, $source, $target, $title, $assignee, null, $description);
-
-        return MergeRequest::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param int $id
-     * @param array $params
-     * @return MergeRequest
-     */
-    public function updateMergeRequest($id, array $params)
-    {
-        $mr = new MergeRequest($this, $id, $this->getClient());
-
-        return $mr->update($params);
-    }
-
-    /**
-     * @param int $id
-     * @return MergeRequest
-     */
-    public function closeMergeRequest($id)
-    {
-        $mr = new MergeRequest($this, $id, $this->getClient());
-
-        return $mr->close();
-    }
-
-    /**
-     * @param int $id
-     * @return MergeRequest
-     */
-    public function openMergeRequest($id)
-    {
-        $mr = new MergeRequest($this, $id, $this->getClient());
-
-        return $mr->reopen();
-    }
-
-    /**
-     * @param int $id
-     * @return MergeRequest
-     */
-    public function mergeMergeRequest($id)
-    {
-        $mr = new MergeRequest($this, $id, $this->getClient());
-
-        return $mr->merge();
-    }
-
-    /**
-     * @param int $page
-     * @param int $per_page
-     * @return Issue[]
-     */
-    public function issues($page = 1, $per_page = Api::PER_PAGE)
-    {
-        $data = $this->api('issues')->all($this->id, $page, $per_page);
-
-        $issues = array();
-        foreach ($data as $issue) {
-            $issues[] = Issue::fromArray($this->getClient(), $this, $issue);
-        }
-
-        return $issues;
-    }
-
-    /**
-     * @param string $title
-     * @param array $params
-     * @return Issue
-     */
-    public function createIssue($title, array $params = array())
-    {
-        $params['title'] = $title;
-        $data = $this->api('issues')->create($this->id, $params);
-
-        return Issue::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param int $id
-     * @return Issue
-     */
-    public function issue($id)
-    {
-        $issue = new Issue($this, $id, $this->getClient());
-
-        return $issue->show();
-    }
-
-    /**
-     * @param int $id
-     * @param array $params
-     * @return Issue
-     */
-    public function updateIssue($id, array $params)
-    {
-        $issue = new Issue($this, $id, $this->getClient());
-
-        return $issue->update($params);
-    }
-
-    /**
-     * @param int $id
-     * @param string $comment
-     * @return Issue
-     */
-    public function closeIssue($id, $comment = null)
-    {
-        $issue = new Issue($this, $id, $this->getClient());
-
-        return $issue->close($comment);
-    }
-
-    /**
-     * @param int $id
-     * @return Issue
-     */
-    public function openIssue($id)
-    {
-        $issue = new Issue($this, $id, $this->getClient());
-
-        return $issue->open();
-    }
-
-    /**
-     * @param int $page
-     * @param int $per_page
-     * @return Milestone[]
-     */
-    public function milestones($page = 1, $per_page = Api::PER_PAGE)
-    {
-        $data = $this->api('milestones')->all($this->id, $page, $per_page);
-
-        $milestones = array();
-        foreach ($data as $milestone) {
-            $milestones[] = Milestone::fromArray($this->getClient(), $this, $milestone);
-        }
-
-        return $milestones;
-    }
-
-    /**
-     * @param string $title
-     * @param array $params
-     * @return Milestone
-     */
-    public function createMilestone($title, array $params = array())
-    {
-        $params['title'] = $title;
-        $data = $this->api('milestones')->create($this->id, $params);
-
-        return Milestone::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param int $id
-     * @return Milestone
-     */
-    public function milestone($id)
-    {
-        $milestone = new Milestone($this, $id, $this->getClient());
-
-        return $milestone->show();
-    }
-
-    /**
-     * @param int $id
-     * @param array $params
-     * @return Milestone
-     */
-    public function updateMilestone($id, array $params)
-    {
-        $milestone = new Milestone($this, $id, $this->getClient());
-
-        return $milestone->update($params);
-    }
-
-    /**
-     * @param int $id
-     * @return Issue[]
-     */
-    public function milestoneIssues($id)
-    {
-        $milestone = new Milestone($this, $id, $this->getClient());
-
-        return $milestone->issues();
-    }
-
-    /**
-     * @return Snippet[]
-     */
-    public function snippets()
-    {
-        $data = $this->api('snippets')->all($this->id);
-
-        $snippets = array();
-        foreach ($data as $snippet) {
-            $snippets[] = Snippet::fromArray($this->getClient(), $this, $snippet);
-        }
-
-        return $snippets;
-    }
-
-    /**
-     * @param string $title
-     * @param string $filename
-     * @param string $code
-     * @param string $lifetime
-     * @return Snippet
-     */
-    public function createSnippet($title, $filename, $code, $lifetime = null)
-    {
-        $data = $this->api('snippets')->create($this->id, $title, $filename, $code, $lifetime);
-
-        return Snippet::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param int $id
-     * @return Snippet
-     */
-    public function snippet($id)
-    {
-        $snippet = new Snippet($this, $id, $this->getClient());
-
-        return $snippet->show();
-    }
-
-    /**
-     * @param int $id
-     * @return Snippet
-     */
-    public function snippetContent($id)
-    {
-        $snippet = new Snippet($this, $id, $this->getClient());
-
-        return $snippet->content();
-    }
-
-    /**
-     * @param int $id
-     * @param array $params
-     * @return Snippet
-     */
-    public function updateSnippet($id, array $params)
-    {
-        $snippet = new Snippet($this, $id, $this->getClient());
-
-        return $snippet->update($params);
-    }
-
-    /**
-     * @param int $id
-     * @return bool
-     */
-    public function removeSnippet($id)
-    {
-        $snippet = new Snippet($this, $id, $this->getClient());
-
-        return $snippet->remove();
-    }
-
-    /**
-     * @param int $group_id
-     * @return Group
-     */
-    public function transfer($group_id)
-    {
-        $group = new Group($group_id, $this->getClient());
-
-        return $group->transfer($this->id);
-    }
-
-    /**
-     * @param int $id
-     * @return Project
-     */
-    public function forkTo($id)
-    {
-        $data = $this->api('projects')->createForkRelation($id, $this->id);
-
-        return Project::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param int $id
-     * @return Project
-     */
-    public function forkFrom($id)
-    {
-        return $this->createForkRelation($id);
-    }
-
-    /**
-     * @param int $id
-     * @return Project
-     */
-    public function createForkRelation($id)
-    {
-        $data = $this->api('projects')->createForkRelation($this->id, $id);
-
-        return Project::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @return bool
-     */
-    public function removeForkRelation()
-    {
-        $this->api('projects')->removeForkRelation($this->id);
-
-        return true;
-    }
-
-    /**
-     * @param string $service_name
-     * @param array $params
-     * @return bool
-     */
-    public function setService($service_name, array $params = array())
-    {
-        $this->api('projects')->setService($this->id, $service_name, $params);
-
-        return true;
-    }
-
-    /**
-     * @param string $service_name
-     * @return bool
-     */
-    public function removeService($service_name)
-    {
-        $this->api('projects')->removeService($this->id, $service_name);
-
-        return true;
-    }
-
-    /**
-     * @return Label[]
-     */
-    public function labels()
-    {
-        $data = $this->api('projects')->labels($this->id);
-
-        $labels = array();
-        foreach ($data as $label) {
-            $labels[] = Label::fromArray($this->getClient(), $this, $label);
-        }
-
-        return $labels;
-    }
-
-    /**
-     * @param string $name
-     * @param string $color
-     * @return Label
-     */
-    public function addLabel($name, $color)
-    {
-        $data = $this->api('projects')->addLabel($this->id, array(
-            'name' => $name,
-            'color' => $color
-        ));
-
-        return Label::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param string $name
-     * @param array $params
-     * @return Label
-     */
-    public function updateLabel($name, array $params)
-    {
-        if (isset($params['name'])) {
-            $params['new_name'] = $params['name'];
-        }
-
-        $params['name'] = $name;
-
-        $data = $this->api('projects')->updateLabel($this->id, $params);
-
-        return Label::fromArray($this->getClient(), $this, $data);
-    }
-
-    /**
-     * @param string $name
-     * @return bool
-     */
-    public function removeLabel($name)
-    {
-        $this->api('projects')->removeLabel($this->id, $name);
-
-        return true;
-    }
-
-    /**
-     * @return array
-     */
-    public function contributors()
-    {
-        $data = $this->api('repo')->contributors($this->id);
-
-        $contributors = array();
-        foreach ($data as $contributor) {
-            $contributors[] = Contributor::fromArray($this->getClient(), $this, $contributor);
-        }
-
-        return $contributors;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/ProjectHook.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/ProjectHook.php
deleted file mode 100644
index a235bff8313f175f3b90ffe5cd21a3f401026c8c..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/ProjectHook.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class ProjectHook
- *
- * @property-read int $id
- * @property-read string $url
- * @property-read int $project_id
- * @property-read bool $push_events
- * @property-read bool $issues_events
- * @property-read bool $merge_requests_events
- * @property-read bool $tag_push_events
- * @property-read string $created_at
- * @property-read Project $project
- */
-class ProjectHook extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'project',
-        'url',
-        'project_id',
-        'push_events',
-        'issues_events',
-        'merge_requests_events',
-        'tag_push_events',
-        'created_at'
-    );
-
-    /**
-     * @param Client  $client
-     * @param Project $project
-     * @param array   $data
-     * @return ProjectHook
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $hook = new static($project, $data['id'], $client);
-
-        return $hook->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param int $id
-     * @param Client $client
-     */
-    public function __construct(Project $project, $id, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-        $this->setData('id', $id);
-    }
-
-    /**
-     * @return ProjectHook
-     */
-    public function show()
-    {
-        $data = $this->api('projects')->hook($this->project->id, $this->id);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @return bool
-     */
-    public function delete()
-    {
-        $this->api('projects')->removeHook($this->project->id, $this->id);
-
-        return true;
-    }
-
-    /**
-     * @return bool
-     */
-    public function remove()
-    {
-        return $this->delete();
-    }
-
-    /**
-     * @param array $params
-     * @return ProjectHook
-     */
-    public function update(array $params)
-    {
-        $data = $this->api('projects')->updateHook($this->project->id, $this->id, $params);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/ProjectNamespace.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/ProjectNamespace.php
deleted file mode 100644
index 9e3aee4ed5a366635a4b8165ca73dc91fb74ee9b..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/ProjectNamespace.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class ProjectNamespace
- *
- * @property-read int $id
- * @property-read string $name
- * @property-read string $path
- * @property-read string $kind
- * @property-read int $owner_id
- * @property-read string $created_at
- * @property-read string $updated_at
- * @property-read string $description
- */
-class ProjectNamespace extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'name',
-        'path',
-        'kind',
-        'owner_id',
-        'created_at',
-        'updated_at',
-        'description'
-    );
-
-    /**
-     * @param Client $client
-     * @param array  $data
-     * @return ProjectNamespace
-     */
-    public static function fromArray(Client $client, array $data)
-    {
-        $project = new static($data['id']);
-        $project->setClient($client);
-
-        return $project->hydrate($data);
-    }
-
-    /**
-     * @param int $id
-     * @param Client $client
-     */
-    public function __construct($id = null, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('id', $id);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Session.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Session.php
deleted file mode 100644
index f9b8177beff6844a93708abdb11ad6c50e947cfc..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Session.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Session
- *
- * @property-read int $id
- * @property-read string $email
- * @property-read string $name
- * @property-read string $private_token
- * @property-read string $created_at
- * @property-read bool $blocked
- */
-class Session extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'email',
-        'name',
-        'private_token',
-        'created_at',
-        'blocked'
-    );
-
-    /**
-     * @param Client $client
-     * @param array  $data
-     * @return Session
-     */
-    public static function fromArray(Client $client, array $data)
-    {
-        $session = new static($client);
-
-        return $session->hydrate($data);
-    }
-
-    /**
-     * @param Client $client
-     */
-    public function __construct(Client $client = null)
-    {
-        $this->setClient($client);
-    }
-
-    /**
-     * @return User
-     */
-    public function me()
-    {
-        $data = $this->api('users')->show();
-
-        return User::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param string $email
-     * @param string $password
-     * @return $this
-     */
-    public function login($email, $password)
-    {
-        $data = $this->api('users')->session($email, $password);
-
-        return $this->hydrate($data);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Snippet.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Snippet.php
deleted file mode 100644
index 5d20e0dbf729a5201306703aad054b17b48f6fff..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Snippet.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Snippet
- *
- * @property-read int $id
- * @property-read string $title
- * @property-read string $file_name
- * @property-read string $expires_at
- * @property-read string $updated_at
- * @property-read string $created_at
- * @property-read Project $project
- * @property-read User $author
- */
-class Snippet extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'title',
-        'file_name',
-        'author',
-        'expires_at',
-        'updated_at',
-        'created_at',
-        'project'
-    );
-
-    /**
-     * @param Client  $client
-     * @param Project $project
-     * @param array   $data
-     * @return Snippet
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $snippet = new static($project, $data['id'], $client);
-
-        if (isset($data['author'])) {
-            $data['author'] = User::fromArray($client, $data['author']);
-        }
-
-        return $snippet->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param int $id
-     * @param Client $client
-     */
-    public function __construct(Project $project, $id = null, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-        $this->setData('id', $id);
-    }
-
-    /**
-     * @return Snippet
-     */
-    public function show()
-    {
-        $data = $this->api('snippets')->show($this->project->id, $this->id);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @param array $params
-     * @return Snippet
-     */
-    public function update(array $params)
-    {
-        $data = $this->api('snippets')->update($this->project->id, $this->id, $params);
-
-        return static::fromArray($this->getClient(), $this->project, $data);
-    }
-
-    /**
-     * @return string
-     */
-    public function content()
-    {
-        return $this->api('snippets')->content($this->project->id, $this->id);
-    }
-
-    /**
-     * @return bool
-     */
-    public function remove()
-    {
-        $this->api('snippets')->remove($this->project->id, $this->id);
-
-        return true;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Tag.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Tag.php
deleted file mode 100644
index 6028b3da5882dda97d6259d0d61082ad849cc2e8..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/Tag.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class Tag
- *
- * @property-read string $name
- * @property-read bool $protected
- * @property-read Commit $commit
- * @property-read Project $project
- */
-class Tag extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'name',
-        'commit',
-        'project',
-        'protected'
-    );
-
-    /**
-     * @param Client  $client
-     * @param Project $project
-     * @param array   $data
-     * @return Tag
-     */
-    public static function fromArray(Client $client, Project $project, array $data)
-    {
-        $branch = new static($project, $data['name'], $client);
-
-        if (isset($data['commit'])) {
-            $data['commit'] = Commit::fromArray($client, $project, $data['commit']);
-        }
-
-        return $branch->hydrate($data);
-    }
-
-    /**
-     * @param Project $project
-     * @param string $name
-     * @param Client $client
-     */
-    public function __construct(Project $project, $name = null, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('project', $project);
-        $this->setData('name', $name);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/User.php b/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/User.php
deleted file mode 100644
index 5ffffc16e269a426e76a09df7d0b1b83e797b3e5..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/lib/Gitlab/Model/User.php
+++ /dev/null
@@ -1,227 +0,0 @@
-<?php namespace Gitlab\Model;
-
-use Gitlab\Client;
-
-/**
- * Class User
- *
- * @property-read int $id
- * @property-read string $email
- * @property-read string $password
- * @property-read string $username
- * @property-read string $name
- * @property-read string $bio
- * @property-read string $skype
- * @property-read string $linkedin
- * @property-read string $twitter
- * @property-read bool $dark_scheme
- * @property-read int $theme_id
- * @property-read int $color_scheme_id
- * @property-read bool $blocked
- * @property-read int $access_level
- * @property-read string $created_at
- * @property-read string $extern_uid
- * @property-read string $provider
- * @property-read string $state
- * @property-read bool $is_admin
- * @property-read bool $can_create_group
- * @property-read bool $can_create_project
- * @property-read string $avatar_url
- * @property-read string $current_sign_in_at
- * @property-read bool $two_factor_enabled
- */
-class User extends AbstractModel
-{
-    /**
-     * @var array
-     */
-    protected static $properties = array(
-        'id',
-        'email',
-        'password',
-        'username',
-        'name',
-        'bio',
-        'skype',
-        'linkedin',
-        'twitter',
-        'dark_scheme',
-        'theme_id',
-        'color_scheme_id',
-        'blocked',
-        'projects_limit',
-        'access_level',
-        'created_at',
-        'extern_uid',
-        'provider',
-        'state',
-        'is_admin',
-        'can_create_group',
-        'can_create_project',
-        'avatar_url',
-        'current_sign_in_at',
-        'two_factor_enabled'
-    );
-
-    /**
-     * @param Client $client
-     * @param array  $data
-     * @return User
-     */
-    public static function fromArray(Client $client, array $data)
-    {
-        $id = isset($data['id']) ? $data['id'] : 0;
-
-        $user = new static($id, $client);
-
-        return $user->hydrate($data);
-    }
-
-    /**
-     * @param Client $client
-     * @param string $email
-     * @param string $password
-     * @param array  $params
-     * @return User
-     */
-    public static function create(Client $client, $email, $password, array $params = array())
-    {
-        $data = $client->api('users')->create($email, $password, $params);
-
-        return static::fromArray($client, $data);
-    }
-
-    /**
-     * @param int $id
-     * @param Client $client
-     */
-    public function __construct($id = null, Client $client = null)
-    {
-        $this->setClient($client);
-        $this->setData('id', $id);
-    }
-
-    /**
-     * @return User
-     */
-    public function show()
-    {
-        $data = $this->api('users')->show($this->id);
-
-        return static::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param array $params
-     * @return User
-     */
-    public function update(array $params)
-    {
-        $data = $this->api('users')->update($this->id, $params);
-
-        return static::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @return bool
-     */
-    public function remove()
-    {
-        $this->api('users')->remove($this->id);
-
-        return true;
-    }
-
-    /**
-     * @return bool
-     */
-    public function block()
-    {
-        $this->api('users')->block($this->id);
-
-        return true;
-    }
-
-    /**
-     * @return bool
-     */
-    public function unblock()
-    {
-        $this->api('users')->unblock($this->id);
-
-        return true;
-    }
-
-    /**
-     * @return Key[]
-     */
-    public function keys()
-    {
-        $data = $this->api('users')->keys();
-
-        $keys = array();
-        foreach ($data as $key) {
-            $keys[] = Key::fromArray($this->getClient(), $key);
-        }
-
-        return $keys;
-    }
-
-    /**
-     * @param string $title
-     * @param string $key
-     * @return Key
-     */
-    public function createKey($title, $key)
-    {
-        $data = $this->api('users')->createKey($title, $key);
-
-        return Key::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param string $title
-     * @param string $key
-     * @return Key
-     */
-    public function createKeyForUser($user_id, $title, $key)
-    {
-        $data = $this->api('users')->createKeyForUser($user_id, $title, $key);
-
-        return Key::fromArray($this->getClient(), $data);
-    }
-
-    /**
-     * @param int $id
-     * @return bool
-     */
-    public function removeKey($id)
-    {
-        $this->api('users')->removeKey($id);
-
-        return true;
-    }
-
-    /**
-     * @param int $group_id
-     * @param int $access_level
-     * @return User
-     */
-    public function addToGroup($group_id, $access_level)
-    {
-        $group = new Group($group_id, $this->getClient());
-
-        return $group->addMember($this->id, $access_level);
-    }
-
-    /**
-     * @param int $group_id
-     * @return bool
-     */
-    public function removeFromGroup($group_id)
-    {
-        $group = new Group($group_id, $this->getClient());
-
-        return $group->removeMember($this->id);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/phpunit.xml.dist b/vendor/m4tthumphrey/php-gitlab-api/phpunit.xml.dist
deleted file mode 100644
index e01386f15e1d1938f4f166c60ffdb9a2d34f418c..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/phpunit.xml.dist
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-				 backupStaticAttributes="false"
-				 colors="true"
-				 convertErrorsToExceptions="true"
-				 convertNoticesToExceptions="true"
-				 convertWarningsToExceptions="true"
-				 processIsolation="false"
-				 stopOnFailure="false"
-				 syntaxCheck="false"
-				 bootstrap="test/bootstrap.php"
-	>
-	<testsuites>
-		<testsuite name="php-gitlab-api Test Suite">
-			<directory>./test/Gitlab/</directory>
-		</testsuite>
-	</testsuites>
-
-	<filter>
-		<whitelist>
-			<directory suffix=".php">./lib/Gitlab/</directory>
-		</whitelist>
-	</filter>
-</phpunit>
\ No newline at end of file
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/AbstractApiTest.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/AbstractApiTest.php
deleted file mode 100644
index 2b3374f4eed4c3a1549172c0413b7d3881b9936b..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/AbstractApiTest.php
+++ /dev/null
@@ -1,177 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-use Gitlab\Api\AbstractApi;
-use Gitlab\Client;
-use Gitlab\HttpClient\Message\Response;
-
-class AbstractApiTest extends TestCase
-{
-    /**
-     * @test
-     */
-    public function shouldPassGETRequestToClient()
-    {
-        $response = $this->getResponse('value');
-
-        $httpClient = $this->getHttpMock();
-        $httpClient
-            ->expects($this->any())
-            ->method('get')
-            ->with('/path', array('param1' => 'param1value'), array('header1' => 'header1value'))
-            ->will($this->returnValue($response));
-
-        $client = $this->getClientMock();
-        $client->setHttpClient($httpClient);
-
-        $api = $this->getAbstractApiObject($client);
-        $this->assertEquals('value', $api->get('/path', array('param1' => 'param1value'), array('header1' => 'header1value')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldPassPOSTRequestToClient()
-    {
-        $response = $this->getResponse('value');
-
-        $httpClient = $this->getHttpMock();
-        $httpClient
-            ->expects($this->any())
-            ->method('post')
-            ->with('/path', array('param1' => 'param1value'), array('header1' => 'header1value'))
-            ->will($this->returnValue($response));
-
-        $client = $this->getClientMock();
-        $client->setHttpClient($httpClient);
-
-        $api = $this->getAbstractApiObject($client);
-        $this->assertEquals('value', $api->post('/path', array('param1' => 'param1value'), array('header1' => 'header1value')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldPassPUTRequestToClient()
-    {
-        $response = $this->getResponse('value');
-
-        $httpClient = $this->getHttpMock();
-        $httpClient
-            ->expects($this->any())
-            ->method('put')
-            ->with('/path', array('param1' => 'param1value'), array('header1' => 'header1value'))
-            ->will($this->returnValue($response));
-
-        $client = $this->getClientMock();
-        $client->setHttpClient($httpClient);
-
-        $api = $this->getAbstractApiObject($client);
-        $this->assertEquals('value', $api->put('/path', array('param1' => 'param1value'), array('header1' => 'header1value')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldPassDELETERequestToClient()
-    {
-        $response = $this->getResponse('value');
-
-        $httpClient = $this->getHttpMock();
-        $httpClient
-            ->expects($this->any())
-            ->method('delete')
-            ->with('/path', array('param1' => 'param1value'), array('header1' => 'header1value'))
-            ->will($this->returnValue($response));
-
-        $client = $this->getClientMock();
-        $client->setHttpClient($httpClient);
-
-        $api = $this->getAbstractApiObject($client);
-        $this->assertEquals('value', $api->delete('/path', array('param1' => 'param1value'), array('header1' => 'header1value')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldPassPATCHRequestToClient()
-    {
-        $response = $this->getResponse('value');
-
-        $httpClient = $this->getHttpMock();
-        $httpClient
-            ->expects($this->any())
-            ->method('patch')
-            ->with('/path', array('param1' => 'param1value'), array('header1' => 'header1value'))
-            ->will($this->returnValue($response));
-
-        $client = $this->getClientMock();
-        $client->setHttpClient($httpClient);
-
-        $api = $this->getAbstractApiObject($client);
-        $this->assertEquals('value', $api->patch('/path', array('param1' => 'param1value'), array('header1' => 'header1value')));
-    }
-
-    /**
-     * @param mixed $value
-     * @return Response
-     */
-    protected function getResponse($value)
-    {
-        $response = new Response();
-        $response->setContent($value);
-
-        return $response;
-    }
-
-    /**
-     * @param Client $client
-     * @return AbstractApiTestInstance
-     */
-    protected function getAbstractApiObject(Client $client)
-    {
-        return new AbstractApiTestInstance($client);
-    }
-}
-
-class AbstractApiTestInstance extends AbstractApi
-{
-    /**
-     * {@inheritDoc}
-     */
-    public function get($path, array $parameters = array(), $requestHeaders = array())
-    {
-        return parent::get($path, $parameters, $requestHeaders);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function post($path, array $parameters = array(), $requestHeaders = array())
-    {
-        return parent::post($path, $parameters, $requestHeaders);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function patch($path, array $parameters = array(), $requestHeaders = array())
-    {
-        return parent::patch($path, $parameters, $requestHeaders);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function put($path, array $parameters = array(), $requestHeaders = array())
-    {
-        return parent::put($path, $parameters, $requestHeaders);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function delete($path, array $parameters = array(), $requestHeaders = array())
-    {
-        return parent::delete($path, $parameters, $requestHeaders);
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/ApiTestCase.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/ApiTestCase.php
deleted file mode 100644
index a695d97cb8007b5ef05014099192368a099403bc..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/ApiTestCase.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-abstract class ApiTestCase extends TestCase
-{
-    abstract protected function getApiClass();
-
-    /**
-     * @param array $methods
-     * @return \PHPUnit_Framework_MockObject_MockObject|mixed
-     */
-    protected function getApiMock($methods = array())
-    {
-        $client = $this->getClientMock();
-
-        $methods = array_merge(array('get', 'post', 'postRaw', 'patch', 'delete', 'put', 'head'), $methods);
-
-        return $this->getMockBuilder($this->getApiClass())
-            ->setMethods($methods)
-            ->setConstructorArgs(array($client))
-            ->getMock()
-        ;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/GroupsTest.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/GroupsTest.php
deleted file mode 100644
index b84baffdaeac65042fbb3cab795db0d925ba22e2..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/GroupsTest.php
+++ /dev/null
@@ -1,247 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-use Gitlab\Api\AbstractApi;
-
-class GroupsTest extends ApiTestCase
-{
-    /**
-     * @test
-     */
-    public function shouldGetAllGroups()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'A group'),
-            array('id' => 2, 'name' => 'Another group'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('groups', array('page' => 1, 'per_page' => 10))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all(1, 10));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldNotNeedPaginationWhenGettingGroups()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'A group'),
-            array('id' => 2, 'name' => 'Another group'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('groups', array('page' => 1, 'per_page' => AbstractApi::PER_PAGE))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all());
-    }
-
-    /**
-     * @test
-     */
-    public function shouldSearchGroups()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'A group'),
-            array('id' => 2, 'name' => 'Another group'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('groups?search=some%20group', array('page' => 1, 'per_page' => AbstractApi::PER_PAGE))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->search('some group'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldSearchGroupsWithPagination()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'A group'),
-            array('id' => 2, 'name' => 'Another group'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('groups?search=group', array('page' => 2, 'per_page' => 5))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->search('group', 2, 5));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldShowGroup()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'A group');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('groups/1')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->show(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateGroup()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'A new group');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('groups', array('name' => 'A new group', 'path' => 'a-new-group', 'description' => null))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->create('A new group', 'a-new-group'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateGroupWithDescription()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'A new group');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('groups', array('name' => 'A new group', 'path' => 'a-new-group', 'description' => 'Description'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->create('A new group', 'a-new-group', 'Description'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldTransferProjectToGroup()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('groups/1/projects/2')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->transfer(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetMembers()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'Matt'),
-            array('id' => 2, 'name' => 'Bob')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('groups/1/members')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->members(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldAddMember()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'Matt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('groups/1/members', array('user_id' => 2, 'access_level' => 3))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->addMember(1, 2, 3));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldSaveMember()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'Matt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('groups/1/members/2', array('access_level' => 4))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->saveMember(1, 2, 4));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveMember()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('groups/1/members/2')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->removeMember(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveGroup()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('groups/1')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->remove(1));
-    }
-
-    protected function getApiClass()
-    {
-        return 'Gitlab\Api\Groups';
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/IssuesTest.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/IssuesTest.php
deleted file mode 100644
index 86ffb977145075433ab00b6bb32d2e6f6da51609..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/IssuesTest.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-use Gitlab\Api\AbstractApi;
-
-class IssuesTest extends ApiTestCase
-{
-    /**
-     * @test
-     */
-    public function shouldGetAllIssues()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'title' => 'An issue'),
-            array('id' => 2, 'title' => 'Another issue'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('issues', array('page' => 1, 'per_page' => AbstractApi::PER_PAGE))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all());
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetProjectIssuesWithPagination()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'title' => 'An issue'),
-            array('id' => 2, 'title' => 'Another issue'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/issues', array('page' => 2, 'per_page' => 5))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all(1, 2, 5));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetProjectIssuesWithParams()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'title' => 'An issue'),
-            array('id' => 2, 'title' => 'Another issue'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/issues', array('page' => 2, 'per_page' => 5, 'order_by' => 'created_at', 'sort' => 'desc', 'labels' => 'foo,bar', 'state' => 'open'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all(1, 2, 5, array('order_by' => 'created_at', 'sort' => 'desc', 'labels' => 'foo,bar', 'state' => 'open')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldShowIssue()
-    {
-        $expectedArray = array('id' => 2, 'title' => 'Another issue');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/issues/2')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->show(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateIssue()
-    {
-        $expectedArray = array('id' => 3, 'title' => 'A new issue');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/issues', array('title' => 'A new issue', 'labels' => 'foo,bar'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->create(1, array('title' => 'A new issue', 'labels' => 'foo,bar')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUpdateIssue()
-    {
-        $expectedArray = array('id' => 2, 'title' => 'A renamed issue');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/issues/2', array('title' => 'A renamed issue', 'labels' => 'foo'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->update(1, 2, array('title' => 'A renamed issue', 'labels' => 'foo')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetIssueComments()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'body' => 'A comment'),
-            array('id' => 2, 'body' => 'Another comment')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/issues/2/notes')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->showComments(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetIssueComment()
-    {
-        $expectedArray = array('id' => 3, 'body' => 'A new comment');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/issues/2/notes/3')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->showComment(1, 2, 3));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateComment()
-    {
-        $expectedArray = array('id' => 3, 'body' => 'A new comment');
-
-        $api = $this->getApiMock();
-        $api->expects($this->exactly(2))
-            ->method('post')
-            ->with('projects/1/issues/2/notes', array('body' => 'A new comment'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->addComment(1, 2, array('body' => 'A new comment')));
-        $this->assertEquals($expectedArray, $api->addComment(1, 2, 'A new comment'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUpdateComment()
-    {
-        $expectedArray = array('id' => 3, 'body' => 'An edited comment');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/issues/2/notes/3', array('body' => 'An edited comment'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->updateComment(1, 2, 3, 'An edited comment'));
-    }
-
-    protected function getApiClass()
-    {
-        return 'Gitlab\Api\Issues';
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/MergeRequestsTest.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/MergeRequestsTest.php
deleted file mode 100644
index 92114fcc05bc58c49e2abf8c1e3f7e9211e4f6a8..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/MergeRequestsTest.php
+++ /dev/null
@@ -1,331 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-use Gitlab\Api\AbstractApi;
-use Gitlab\Api\MergeRequests;
-
-class MergeRequestsTest extends ApiTestCase
-{
-    /**
-     * @test
-     */
-    public function shouldGetMergeRequestListWithDefaultParams()
-    {
-        $expectedArray = $this->getMultipleMergeRequestsData();
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/merge_requests', array('page' => 1, 'per_page' => AbstractApi::PER_PAGE, 'state' => MergeRequests::STATE_ALL, 'order_by' => MergeRequests::ORDER_BY, 'sort' => MergeRequests::SORT))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->getList(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetAll()
-    {
-        $expectedArray = $this->getMultipleMergeRequestsData();
-
-        $api = $this->getApiMock(array('getList'));
-        $api->expects($this->once())
-            ->method('getList')
-            ->with(1, MergeRequests::STATE_ALL, 1, AbstractApi::PER_PAGE, MergeRequests::ORDER_BY, MergeRequests::SORT)
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetAllWithParams()
-    {
-        $expectedArray = $this->getMultipleMergeRequestsData();
-
-        $api = $this->getApiMock(array('getList'));
-        $api->expects($this->once())
-            ->method('getList')
-            ->with(1, MergeRequests::STATE_ALL, 2, 5,  'title', 'desc')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all(1, 2, 5, 'title', 'desc'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetMerged()
-    {
-        $expectedArray = $this->getMultipleMergeRequestsData();
-
-        $api = $this->getApiMock(array('getList'));
-        $api->expects($this->once())
-            ->method('getList')
-            ->with(1, MergeRequests::STATE_MERGED, 1, AbstractApi::PER_PAGE, MergeRequests::ORDER_BY, MergeRequests::SORT)
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->merged(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetMergedWithParams()
-    {
-        $expectedArray = $this->getMultipleMergeRequestsData();
-
-        $api = $this->getApiMock(array('getList'));
-        $api->expects($this->once())
-            ->method('getList')
-            ->with(1, MergeRequests::STATE_MERGED, 3, 15, 'updated_at', 'asc')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->merged(1, 3, 15, 'updated_at', 'asc'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetOpened()
-    {
-        $expectedArray = $this->getMultipleMergeRequestsData();
-
-        $api = $this->getApiMock(array('getList'));
-        $api->expects($this->once())
-            ->method('getList')
-            ->with(1, MergeRequests::STATE_OPENED, 1, AbstractApi::PER_PAGE, MergeRequests::ORDER_BY, MergeRequests::SORT)
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->opened(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetOpenedWithParams()
-    {
-        $expectedArray = $this->getMultipleMergeRequestsData();
-
-        $api = $this->getApiMock(array('getList'));
-        $api->expects($this->once())
-            ->method('getList')
-            ->with(1, MergeRequests::STATE_OPENED, 2, 4, 'title', 'desc')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->opened(1, 2, 4, 'title', 'desc'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetClosed()
-    {
-        $expectedArray = $this->getMultipleMergeRequestsData();
-
-        $api = $this->getApiMock(array('getList'));
-        $api->expects($this->once())
-            ->method('getList')
-            ->with(1, MergeRequests::STATE_CLOSED, 1, AbstractApi::PER_PAGE, MergeRequests::ORDER_BY, MergeRequests::SORT)
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->closed(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetClosedWithParams()
-    {
-        $expectedArray = $this->getMultipleMergeRequestsData();
-
-        $api = $this->getApiMock(array('getList'));
-        $api->expects($this->once())
-            ->method('getList')
-            ->with(1, MergeRequests::STATE_CLOSED, 2, 4, 'title', 'desc')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->closed(1, 2, 4, 'title', 'desc'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldShowMergeRequest()
-    {
-        $expectedArray = array('id' => 2, 'name' => 'A merge request');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/merge_request/2')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->show(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateMergeRequestWithoutOptionalParams()
-    {
-        $expectedArray = array('id' => 3, 'title' => 'Merge Request');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/merge_requests', array(
-                'title' => 'Merge Request',
-                'target_branch' => 'master',
-                'source_branch' => 'develop',
-                'description' => null,
-                'assignee_id' => null,
-                'target_project_id' => null
-            ))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->create(1, 'develop', 'master', 'Merge Request'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateMergeRequestWithOptionalParams()
-    {
-        $expectedArray = array('id' => 3, 'title' => 'Merge Request');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/merge_requests', array(
-                'title' => 'Merge Request',
-                'target_branch' => 'master',
-                'source_branch' => 'develop',
-                'description' => 'Some changes',
-                'assignee_id' => 6,
-                'target_project_id' => 20
-            ))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->create(1, 'develop', 'master', 'Merge Request', 6, 20, 'Some changes'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUpdateMergeRequest()
-    {
-        $expectedArray = array('id' => 2, 'title' => 'Updated title');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/merge_request/2', array('title' => 'Updated title', 'description' => 'No so many changes now', 'state_event' => 'close'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->update(1, 2, array(
-            'title' => 'Updated title',
-            'description' => 'No so many changes now',
-            'state_event' => 'close'
-        )));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldMergeMergeRequest()
-    {
-        $expectedArray = array('id' => 2, 'title' => 'Updated title');
-
-        $api = $this->getApiMock();
-        $api->expects($this->exactly(2))
-            ->method('put')
-            ->with('projects/1/merge_request/2/merge', array('merge_commit_message' => 'Accepted'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->merge(1, 2, 'Accepted'));
-        $this->assertEquals($expectedArray, $api->merge(1, 2, array('merge_commit_message' => 'Accepted')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetMergeRequestComments()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'note' => 'A comment'),
-            array('id' => 2, 'note' => 'Another comment')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/merge_request/2/comments')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->showComments(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldAddMergeRequestComment()
-    {
-        $expectedArray = array('id' => 2, 'title' => 'A comment');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/merge_request/2/comments', array('note' => 'A comment'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->addComment(1, 2, 'A comment'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetMergeRequestChanges()
-    {
-        $expectedArray = array('id' => 1, 'title' => 'A merge request');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/merge_request/2/changes')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->changes(1, 2));
-    }
-
-    protected function getMultipleMergeRequestsData()
-    {
-        return array(
-            array('id' => 1, 'title' => 'A merge request'),
-            array('id' => 2, 'title' => 'Another merge request')
-        );
-    }
-
-    protected function getApiClass()
-    {
-        return 'Gitlab\Api\MergeRequests';
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/MilestonesTest.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/MilestonesTest.php
deleted file mode 100644
index e22c2370ff9dfbc49db5087284329da980253438..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/MilestonesTest.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-class MilestonesTest extends ApiTestCase
-{
-    /**
-     * @test
-     */
-    public function shouldGetAllMilestones()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'title' => 'A milestone'),
-            array('id' => 2, 'title' => 'Another milestone'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/milestones')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldShowMilestone()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'A milestone');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/milestones/2')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->show(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateMilestone()
-    {
-        $expectedArray = array('id' => 3, 'title' => 'A new milestone');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/milestones', array('description' => 'Some text', 'title' => 'A new milestone'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->create(1, array('description' => 'Some text', 'title' => 'A new milestone')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUpdateMilestone()
-    {
-        $expectedArray = array('id' => 3, 'title' => 'Updated milestone');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/milestones/3', array('title' => 'Updated milestone', 'due_date' => '2015-04-01', 'state_event' => 'close'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->update(1, 3, array('title' => 'Updated milestone', 'due_date' => '2015-04-01', 'state_event' => 'close')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetMilestonesIssues()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'title' => 'An issue'),
-            array('id' => 2, 'title' => 'Another issue'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/milestones/3/issues')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->issues(1, 3));
-    }
-
-    protected function getApiClass()
-    {
-        return 'Gitlab\Api\Milestones';
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/ProjectNamespacesTest.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/ProjectNamespacesTest.php
deleted file mode 100644
index 1feb5ff1f4146d0b9e020a2ec4f601364aebf5ce..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/ProjectNamespacesTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-use Gitlab\Api\AbstractApi;
-
-class ProjectNamespacesTest extends ApiTestCase
-{
-    /**
-     * @test
-     */
-    public function shouldGetAllNamespaces()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'bespokes'),
-            array('id' => 2, 'name' => 'internal')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('namespaces', array('page' => 1, 'per_page' => 10))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all(1, 10));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldNotNeedPaginationWhenGettingNamespaces()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'bespokes'),
-            array('id' => 2, 'name' => 'internal')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('namespaces', array('page' => 1, 'per_page' => AbstractApi::PER_PAGE))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all());
-    }
-    /**
-     * @test
-     */
-    public function shouldSearchNamespaces()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'bespokes'),
-            array('id' => 2, 'name' => 'internal')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('namespaces', array('search' => 'term', 'page' => 1, 'per_page' => 10))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->search('term', 1, 10));
-    }
-
-    protected function getApiClass()
-    {
-        return 'Gitlab\Api\ProjectNamespaces';
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/ProjectsTest.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/ProjectsTest.php
deleted file mode 100644
index fdcdf5141d3b137981b4659ae6bd6f106e9df06f..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/ProjectsTest.php
+++ /dev/null
@@ -1,691 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-use Gitlab\Api\AbstractApi;
-use Gitlab\Api\Projects;
-
-class ProjectsTest extends ApiTestCase
-{
-    /**
-     * @test
-     */
-    public function shouldGetAllProjects()
-    {
-        $expectedArray = $this->getMultipleProjectsData();
-
-        $api = $this->getMultipleProjectsRequestMock('projects/all', $expectedArray);
-
-        $this->assertEquals($expectedArray, $api->all());
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetAllProjectsSortedByName()
-    {
-        $expectedArray = $this->getMultipleProjectsData();
-
-        $api = $this->getMultipleProjectsRequestMock('projects/all', $expectedArray, 1, 5, 'name', 'asc');
-
-        $this->assertEquals($expectedArray, $api->all(1, 5, 'name'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldNotNeedPaginationWhenGettingProjects()
-    {
-        $expectedArray = $this->getMultipleProjectsData();
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/all', array('page' => 1, 'per_page' => AbstractApi::PER_PAGE, 'order_by' => Projects::ORDER_BY, 'sort' => Projects::SORT))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all());
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetAccessibleProjects()
-    {
-        $expectedArray = $this->getMultipleProjectsData();
-
-        $api = $this->getMultipleProjectsRequestMock('projects', $expectedArray, 2, 7);
-
-        $this->assertEquals($expectedArray, $api->accessible(2, 7));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetOwnedProjects()
-    {
-        $expectedArray = $this->getMultipleProjectsData();
-
-        $api = $this->getMultipleProjectsRequestMock('projects/owned', $expectedArray, 3, 50);
-
-        $this->assertEquals($expectedArray, $api->owned(3, 50));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldSearchProjects()
-    {
-        $expectedArray = $this->getMultipleProjectsData();
-
-        $api = $this->getMultipleProjectsRequestMock('projects/search/a%20project', $expectedArray);
-        $this->assertEquals($expectedArray, $api->search('a project'));
-
-        $api = $this->getMultipleProjectsRequestMock('projects/search/a%2Eproject', $expectedArray);
-        $this->assertEquals($expectedArray, $api->search('a.project'));
-
-        $api = $this->getMultipleProjectsRequestMock('projects/search/a%2Fproject', $expectedArray);
-        $this->assertEquals($expectedArray, $api->search('a/project'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldShowProject()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'Project Name');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->show(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateProject()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'Project Name');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects', array('name' => 'Project Name', 'issues_enabled' => true))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->create('Project Name', array(
-            'issues_enabled' => true
-        )));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUpdateProject()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'Updated Name');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1', array('name' => 'Updated Name', 'issues_enabled' => true))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->update(1, array(
-            'name' => 'Updated Name',
-            'issues_enabled' => true
-        )));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateProjectForUser()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'Project Name');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/user/1', array('name' => 'Project Name', 'issues_enabled' => true))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->createForUser(1, 'Project Name', array(
-            'issues_enabled' => true
-        )));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveProject()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('projects/1')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->remove(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetMembers()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'Matt'),
-            array('id' => 2, 'name' => 'Bob')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/members')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->members(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetMembersWithQuery()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'Matt')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/members', array('query' => 'at'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->members(1, 'at'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetMember()
-    {
-        $expectedArray = array('id' => 2, 'name' => 'Matt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/members/2')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->member(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldAddMember()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'Matt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/members', array('user_id' => 2, 'access_level' => 3))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->addMember(1, 2, 3));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldSaveMember()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'Matt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/members/2', array('access_level' => 4))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->saveMember(1, 2, 4));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveMember()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('projects/1/members/2')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->removeMember(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetHooks()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'Test hook'),
-            array('id' => 2, 'name' => 'Another hook'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/hooks')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->hooks(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetHook()
-    {
-        $expectedArray = array('id' => 2, 'name' => 'Another hook');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/hooks/2')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->hook(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldAddHook()
-    {
-        $expectedArray = array('id' => 3, 'name' => 'A new hook', 'url' => 'http://www.example.com');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/hooks', array('url' => 'http://www.example.com', 'push_events' => true, 'issues_events' => true, 'merge_requests_events' => true))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->addHook(1, 'http://www.example.com', array('push_events' => true, 'issues_events' => true, 'merge_requests_events' => true)));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldAddHookWithOnlyUrl()
-    {
-        $expectedArray = array('id' => 3, 'name' => 'A new hook', 'url' => 'http://www.example.com');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/hooks', array('url' => 'http://www.example.com', 'push_events' => true))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->addHook(1, 'http://www.example.com'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldAddHookWithoutPushEvents()
-    {
-        $expectedArray = array('id' => 3, 'name' => 'A new hook', 'url' => 'http://www.example.com');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/hooks', array('url' => 'http://www.example.com', 'push_events' => false))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->addHook(1, 'http://www.example.com', array('push_events' => false)));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUpdateHook()
-    {
-        $expectedArray = array('id' => 3, 'name' => 'A new hook', 'url' => 'http://www.example.com');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/hooks/3', array('url' => 'http://www.example-test.com', 'push_events' => false))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->updateHook(1, 3, array('url' => 'http://www.example-test.com', 'push_events' => false)));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveHook()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('projects/1/hooks/2')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->removeHook(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetKeys()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'title' => 'test-key'),
-            array('id' => 2, 'title' => 'another-key')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/keys')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->keys(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetKey()
-    {
-        $expectedArray = array('id' => 2, 'title' => 'another-key');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/keys/2')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->key(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldAddKey()
-    {
-        $expectedArray = array('id' => 3, 'title' => 'new-key');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/keys', array('title' => 'new-key', 'key' => '...'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->addKey(1, 'new-key', '...'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveKey()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('projects/1/keys/3')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->removeKey(1, 3));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetEvents()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'title' => 'An event'),
-            array('id' => 2, 'title' => 'Another event')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/events', array(
-                'page' => 1,
-                'per_page' => AbstractApi::PER_PAGE
-            ))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->events(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetEventsWithPagination()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'title' => 'An event'),
-            array('id' => 2, 'title' => 'Another event')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/events', array(
-                'page' => 2,
-                'per_page' => 15
-            ))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->events(1, 2, 15));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetLabels()
-    {
-        $expectedArray = array(
-            array('name' => 'bug', 'color' => '#000000'),
-            array('name' => 'feature', 'color' => '#ff0000')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/labels')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->labels(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldAddLabel()
-    {
-        $expectedArray = array('name' => 'bug', 'color' => '#000000');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/labels', array('name' => 'wont-fix', 'color' => '#ffffff'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->addLabel(1, array('name' => 'wont-fix', 'color' => '#ffffff')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUpdateLabel()
-    {
-        $expectedArray = array('name' => 'bug', 'color' => '#00ffff');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/labels', array('name' => 'bug', 'new_name' => 'big-bug', 'color' => '#00ffff'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->updateLabel(1, array('name' => 'bug', 'new_name' => 'big-bug', 'color' => '#00ffff')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveLabel()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('projects/1/labels', array('name' => 'bug'))
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->removeLabel(1, 'bug'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateForkRelation()
-    {
-        $expectedArray = array('project_id' => 1, 'forked_id' => 2);
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/fork/2')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->createForkRelation(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveForkRelation()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('projects/2/fork')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->removeForkRelation(2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldSetService()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/services/hipchat', array('param' => 'value'))
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->setService(1, 'hipchat', array('param' => 'value')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveService()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('projects/1/services/hipchat')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->removeService(1, 'hipchat'));
-    }
-
-    protected function getMultipleProjectsRequestMock($path, $expectedArray = array(), $page = 1, $per_page = 20, $order_by = 'created_at', $sort = 'asc')
-    {
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with($path, array('page' => $page, 'per_page' => $per_page, 'order_by' => $order_by, 'sort' => $sort))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        return $api;
-    }
-
-    protected function getMultipleProjectsData()
-    {
-        return array(
-            array('id' => 1, 'name' => 'A project'),
-            array('id' => 2, 'name' => 'Another project')
-        );
-    }
-
-    protected function getApiClass()
-    {
-        return 'Gitlab\Api\Projects';
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/RepositoriesTest.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/RepositoriesTest.php
deleted file mode 100644
index d3fd61faacea31c743d78f5090ec6b6d9439991f..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/RepositoriesTest.php
+++ /dev/null
@@ -1,516 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-use Gitlab\Api\AbstractApi;
-
-class RepositoriesTest extends ApiTestCase
-{
-    /**
-     * @test
-     */
-    public function shouldGetBranches()
-    {
-        $expectedArray = array(
-            array('name' => 'master'),
-            array('name' => 'develop')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/branches')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->branches(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetBranch()
-    {
-        $expectedArray = array('name' => 'master');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/branches/master')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->branch(1, 'master'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateBranch()
-    {
-        $expectedArray = array('name' => 'feature');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/repository/branches', array('branch_name' => 'feature', 'ref' => 'master'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->createBranch(1, 'feature', 'master'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldDeleteBranch()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('projects/1/repository/branches/master')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->deleteBranch(1, 'master'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldProtectBranch()
-    {
-        $expectedArray = array('name' => 'master');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/repository/branches/master/protect')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->protectBranch(1, 'master'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUnprotectBranch()
-    {
-        $expectedArray = array('name' => 'master');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/repository/branches/master/unprotect')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->unprotectBranch(1, 'master'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetTags()
-    {
-        $expectedArray = array(
-            array('name' => '1.0'),
-            array('name' => '1.1')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/tags')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->tags(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateTag()
-    {
-        $expectedArray = array('name' => '1.0');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/repository/tags', array(
-                'tag_name' => '1.0',
-                'ref' => 'abcd1234',
-                'message' => '1.0 release'
-            ))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->createTag(1, '1.0', 'abcd1234', '1.0 release'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetCommits()
-    {
-        $expectedArray = array(
-            array('id' => 'abcd1234', 'title' => 'A commit'),
-            array('id' => 'efgh5678', 'title' => 'Another commit')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/commits', array('page' => 0, 'per_page' => AbstractApi::PER_PAGE, 'ref_name' => null))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->commits(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetCommitsWithParams()
-    {
-        $expectedArray = array(
-            array('id' => 'abcd1234', 'title' => 'A commit'),
-            array('id' => 'efgh5678', 'title' => 'Another commit')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/commits', array('page' => 2, 'per_page' => 25, 'ref_name' => 'master'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->commits(1, 2, 25, 'master'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetCommit()
-    {
-        $expectedArray = array('id' => 'abcd1234', 'title' => 'A commit');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/commits/abcd1234')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->commit(1, 'abcd1234'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetCommitComments()
-    {
-        $expectedArray = array(
-            array('note' => 'A commit message'),
-            array('note' => 'Another commit message')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/commits/abcd1234/comments')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->commitComments(1, 'abcd1234'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateCommitComment()
-    {
-        $expectedArray = array('id' => 2, 'title' => 'A new comment');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/repository/commits/abcd1234/comments', array('note' => 'A new comment'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->createCommitComment(1, 'abcd1234', 'A new comment'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateCommitCommentWithParams()
-    {
-        $expectedArray = array('id' => 2, 'title' => 'A new comment');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/repository/commits/abcd1234/comments', array(
-                'note' => 'A new comment',
-                'path' => '/some/file.txt',
-                'line' => 123, 'line_type' => 'old'
-            ))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->createCommitComment(1, 'abcd1234', 'A new comment', array(
-            'path' => '/some/file.txt',
-            'line' => 123,
-            'line_type' => 'old'
-        )));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCompare()
-    {
-        $expectedArray = array('commit' => 'object');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/compare?from=master&to=feature')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->compare(1, 'master', 'feature'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetDiff()
-    {
-        $expectedArray = array(
-            array('diff' => '--- ...'),
-            array('diff' => '+++ ...')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/commits/abcd1234/diff')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->diff(1, 'abcd1234'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetTree()
-    {
-        $expectedArray = array(
-            array('name' => 'file1.txt'),
-            array('name' => 'file2.csv')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/tree')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->tree(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetTreeWithParams()
-    {
-        $expectedArray = array(
-            array('name' => 'dir/file1.txt'),
-            array('name' => 'dir/file2.csv')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/tree', array('path' => 'dir/', 'ref_name' => 'master'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->tree(1, array('path' => 'dir/', 'ref_name' => 'master')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetBlob()
-    {
-        $expectedString = 'something in a file';
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/commits/abcd1234/blob', array('filepath' => 'dir/file1.txt'))
-            ->will($this->returnValue($expectedString))
-        ;
-
-        $this->assertEquals($expectedString, $api->blob(1, 'abcd1234', 'dir/file1.txt'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetFile()
-    {
-        $expectedArray = array('file_name' => 'file1.txt', 'file_path' => 'dir/file1.txt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/files', array('file_path' => 'dir/file1.txt', 'ref' => 'abcd1234'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->getFile(1, 'dir/file1.txt', 'abcd1234'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateFile()
-    {
-        $expectedArray = array('file_name' => 'file1.txt', 'file_path' => 'dir/file1.txt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/repository/files', array(
-                'file_path' => 'dir/file1.txt',
-                'branch_name' => 'master',
-                'encoding' => null,
-                'content' => 'some contents',
-                'commit_message' => 'Added new file'
-            ))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->createFile(1, 'dir/file1.txt', 'some contents', 'master', 'Added new file'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateFileWithEncoding()
-    {
-        $expectedArray = array('file_name' => 'file1.txt', 'file_path' => 'dir/file1.txt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/repository/files', array(
-                'file_path' => 'dir/file1.txt',
-                'branch_name' => 'master',
-                'encoding' => 'text',
-                'content' => 'some contents',
-                'commit_message' => 'Added new file'
-            ))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->createFile(1, 'dir/file1.txt', 'some contents', 'master', 'Added new file', 'text'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUpdateFile()
-    {
-        $expectedArray = array('file_name' => 'file1.txt', 'file_path' => 'dir/file1.txt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/repository/files', array(
-                'file_path' => 'dir/file1.txt',
-                'branch_name' => 'master',
-                'encoding' => null,
-                'content' => 'some new contents',
-                'commit_message' => 'Updated new file'
-            ))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->updateFile(1, 'dir/file1.txt', 'some new contents', 'master', 'Updated new file'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUpdateFileWithEncoding()
-    {
-        $expectedArray = array('file_name' => 'file1.txt', 'file_path' => 'dir/file1.txt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/repository/files', array(
-                'file_path' => 'dir/file1.txt',
-                'branch_name' => 'master',
-                'encoding' => 'base64',
-                'content' => 'some new contents',
-                'commit_message' => 'Updated file'
-            ))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->updateFile(1, 'dir/file1.txt', 'some new contents', 'master', 'Updated file', 'base64'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldDeleteFile()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('projects/1/repository/files', array('file_path' => 'dir/file1.txt', 'branch_name' => 'master', 'commit_message' => 'Deleted file'))
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->deleteFile(1, 'dir/file1.txt', 'master', 'Deleted file'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetContributors()
-    {
-        $expectedArray = array(
-            array('name' => 'Matt'),
-            array('name' => 'Bob')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/repository/contributors')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->contributors(1));
-    }
-
-    protected function getApiClass()
-    {
-        return 'Gitlab\Api\Repositories';
-    }
-} 
\ No newline at end of file
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/SnippetsTest.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/SnippetsTest.php
deleted file mode 100644
index 694aac5959ddecfade4f6b1bedf6d32580003517..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/SnippetsTest.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-class SnippetsTest extends ApiTestCase
-{
-    /**
-     * @test
-     */
-    public function shouldGetAllSnippets()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'title' => 'A snippet'),
-            array('id' => 2, 'title' => 'Another snippet'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/snippets')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldShowSnippet()
-    {
-        $expectedArray = array('id' => 2, 'title' => 'Another snippet');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/snippets/2')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->show(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateSnippet()
-    {
-        $expectedArray = array('id' => 3, 'title' => 'A new snippet');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('projects/1/snippets', array('title' => 'A new snippet', 'code' => 'A file', 'file_name' => 'file.txt'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->create(1, 'A new snippet', 'file.txt', 'A file'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUpdateSnippet()
-    {
-        $expectedArray = array('id' => 3, 'title' => 'Updated snippet');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('projects/1/snippets/3', array('title' => 'Updated snippet', 'code' => 'New content', 'file_name' => 'new_file.txt'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->update(1, 3, array('file_name' => 'new_file.txt', 'code' => 'New content', 'title' => 'Updated snippet')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldShowContent()
-    {
-        $expectedString = 'New content';
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('projects/1/snippets/3/raw')
-            ->will($this->returnValue($expectedString))
-        ;
-
-        $this->assertEquals($expectedString, $api->content(1, 3));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveSnippet()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('projects/1/snippets/3')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->remove(1, 3));
-    }
-
-    protected function getApiClass()
-    {
-        return 'Gitlab\Api\Snippets';
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/SystemHooksTest.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/SystemHooksTest.php
deleted file mode 100644
index 3bf16bce6bcd948fad1f0d3c280fc4a4a478e7cb..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/SystemHooksTest.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-class SystemHooksTest extends ApiTestCase
-{
-    /**
-     * @test
-     */
-    public function shouldGetAllHooks()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'url' => 'http://www.example.com'),
-            array('id' => 2, 'url' => 'http://www.example.org'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('hooks')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all());
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateHook()
-    {
-        $expectedArray = array('id' => 3, 'url' => 'http://www.example.net');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('hooks', array('url' => 'http://www.example.net'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->create('http://www.example.net'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldTestHook()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('hooks/3')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->test(3));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveHook()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('hooks/3')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->remove(3));
-    }
-
-    protected function getApiClass()
-    {
-        return 'Gitlab\Api\SystemHooks';
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/TestCase.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/TestCase.php
deleted file mode 100644
index cba51e5e26a9bf8cdc1554ae094450706f3eef9b..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/TestCase.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-use Buzz\Client\Curl;
-
-use Gitlab\Client;
-use Gitlab\HttpClient\HttpClientInterface;
-
-abstract class TestCase extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @return Client
-     */
-    protected function getClientMock()
-    {
-        return new Client($this->getHttpMock());
-    }
-
-    /**
-     * @return \PHPUnit_Framework_MockObject_MockObject|HttpClientInterface
-     */
-    protected function getHttpMock()
-    {
-        return $this->getMock('Gitlab\HttpClient\HttpClient', array(), array(null, array(), $this->getHttpClientMock()));
-    }
-
-    /**
-     * @return \PHPUnit_Framework_MockObject_MockObject|Curl
-     */
-    protected function getHttpClientMock()
-    {
-        $httpClient = $this->getMock('Buzz\Client\Curl', array('send'));
-        $httpClient
-            ->expects($this->any())
-            ->method('send');
-
-        return $httpClient;
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/UsersTest.php b/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/UsersTest.php
deleted file mode 100644
index cc1d262ab5d8dffa69a698b7fc9a6d12a7490328..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/Gitlab/Tests/Api/UsersTest.php
+++ /dev/null
@@ -1,424 +0,0 @@
-<?php namespace Gitlab\Tests\Api;
-
-use Gitlab\Api\AbstractApi;
-
-class UsersTest extends ApiTestCase
-{
-    /**
-     * @test
-     */
-    public function shouldGetAllUsers()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'Matt'),
-            array('id' => 2, 'name' => 'John'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('users', array('active' => null, 'page' => 1, 'per_page' => 10))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all(null, 1, 10));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetActiveUsers()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'Matt'),
-            array('id' => 2, 'name' => 'John'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('users', array('active' => true, 'page' => 1, 'per_page' => AbstractApi::PER_PAGE))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all(true));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldNotNeedPaginationWhenGettingUsers()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'Matt'),
-            array('id' => 2, 'name' => 'John'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('users', array('active' => null, 'page' => 1, 'per_page' => AbstractApi::PER_PAGE))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->all());
-    }
-
-    /**
-     * @test
-     */
-    public function shouldSearchUsers()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'Matt')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('users', array('search' => 'ma', 'active' => null, 'page' => 1, 'per_page' => AbstractApi::PER_PAGE))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->search('ma'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldSearchActiveUsers()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'Matt')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('users', array('search' => 'ma', 'active' => true, 'page' => 1, 'per_page' => AbstractApi::PER_PAGE))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->search('ma', true));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldSearchActiveUsersWithPagination()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'name' => 'Matt')
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('users', array('search' => 'ma', 'active' => true, 'page' => 2, 'per_page' => 5))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->search('ma', true, 2, 5));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldShowUser()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'Matt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('users/1')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->show(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateUser()
-    {
-        $expectedArray = array('id' => 3, 'name' => 'Billy');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('users', array('email' => 'billy@example.com', 'password' => 'password'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->create('billy@example.com', 'password'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateUserWithAdditionalInfo()
-    {
-        $expectedArray = array('id' => 3, 'name' => 'Billy');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('users', array('email' => 'billy@example.com', 'password' => 'password', 'name' => 'Billy', 'bio' => 'A person'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->create('billy@example.com', 'password', array('name' => 'Billy', 'bio' => 'A person')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUpdateUser()
-    {
-        $expectedArray = array('id' => 3, 'name' => 'Billy Bob');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('users/3', array('name' => 'Billy Bob'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->update(3, array('name' => 'Billy Bob')));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldRemoveUser()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('users/1')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->remove(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldBlockUser()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('users/1/block')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->block(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldUnblockUser()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('put')
-            ->with('users/1/unblock')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->unblock(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldShowCurrentUser()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'Matt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('user')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->me());
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetCurrentUserKeys()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'title' => 'A key'),
-            array('id' => 2, 'name' => 'Another key'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('user/keys')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->keys(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetCurrentUserKey()
-    {
-        $expectedArray = array('id' => 1, 'title' => 'A key');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('user/keys/1')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->key(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateKeyForCurrentUser()
-    {
-        $expectedArray = array('id' => 3, 'title' => 'A new key');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('user/keys', array('title' => 'A new key', 'key' => '...'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->createKey('A new key', '...'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldDeleteKeyForCurrentUser()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('user/keys/3')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->removeKey(3));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetUserKeys()
-    {
-        $expectedArray = array(
-            array('id' => 1, 'title' => 'A key'),
-            array('id' => 2, 'name' => 'Another key'),
-        );
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('users/1/keys')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->userKeys(1));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldGetUserKey()
-    {
-        $expectedArray = array('id' => 2, 'title' => 'Another key');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('get')
-            ->with('users/1/keys/2')
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->userKey(1, 2));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldCreateKeyForUser()
-    {
-        $expectedArray = array('id' => 3, 'title' => 'A new key');
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('post')
-            ->with('users/1/keys', array('title' => 'A new key', 'key' => '...'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->createKeyForUser(1, 'A new key', '...'));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldDeleteKeyForUser()
-    {
-        $expectedBool = true;
-
-        $api = $this->getApiMock();
-        $api->expects($this->once())
-            ->method('delete')
-            ->with('users/1/keys/3')
-            ->will($this->returnValue($expectedBool))
-        ;
-
-        $this->assertEquals($expectedBool, $api->removeUserKey(1, 3));
-    }
-
-    /**
-     * @test
-     */
-    public function shouldAttemptLogin()
-    {
-        $expectedArray = array('id' => 1, 'name' => 'Matt');
-
-        $api = $this->getApiMock();
-        $api->expects($this->exactly(2))
-            ->method('post')
-            ->with('session', array('login' => 'matt', 'password' => 'password', 'email' => 'matt'))
-            ->will($this->returnValue($expectedArray))
-        ;
-
-        $this->assertEquals($expectedArray, $api->session('matt', 'password'));
-        $this->assertEquals($expectedArray, $api->login('matt', 'password'));
-    }
-
-    protected function getApiClass()
-    {
-        return 'Gitlab\Api\Users';
-    }
-}
diff --git a/vendor/m4tthumphrey/php-gitlab-api/test/bootstrap.php b/vendor/m4tthumphrey/php-gitlab-api/test/bootstrap.php
deleted file mode 100644
index 83bc8b088a4fee7016d39ea78c45258cde578119..0000000000000000000000000000000000000000
--- a/vendor/m4tthumphrey/php-gitlab-api/test/bootstrap.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-function includeIfExists($file)
-{
-    if (file_exists($file)) {
-        return include $file;
-    }
-}
-
-if ((!$loader = includeIfExists(__DIR__.'/../vendor/autoload.php')) && (!$loader = includeIfExists(__DIR__.'/../../../.composer/autoload.php'))) {
-    die('You must set up the project dependencies, run the following commands:'.PHP_EOL.
-        'curl -s http://getcomposer.org/installer | php'.PHP_EOL.
-        'php composer.phar install'.PHP_EOL);
-}
-
-$loader->add('Gitlab\Tests', __DIR__);
-
-return $loader;
\ No newline at end of file
diff --git a/vendor/ulrichsg/getopt-php/.gitignore b/vendor/ulrichsg/getopt-php/.gitignore
deleted file mode 100644
index 18c43b1e4b0b9f66a46b69151b4790d4de3b360b..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-build
-composer.lock
-vendor
-nbproject
-_site
diff --git a/vendor/ulrichsg/getopt-php/.travis.yml b/vendor/ulrichsg/getopt-php/.travis.yml
deleted file mode 100644
index 6c7b0e4f2441216330b6173a6da2302bbe7e3499..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/.travis.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-language: php
-php:
-  - 5.6
-  - 5.5
-  - 5.4
-  - 5.3
-  - hhvm
-
-before_script:
- - composer install
diff --git a/vendor/ulrichsg/getopt-php/CHANGELOG.md b/vendor/ulrichsg/getopt-php/CHANGELOG.md
deleted file mode 100644
index d9e097bfc7a6971d5c50bca1d4ac4dc1b788d7a5..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/CHANGELOG.md
+++ /dev/null
@@ -1,77 +0,0 @@
-## 2.3.0 (2015-03-28)
-
-Features:
-* Optional argument descriptions (courtesy of @sabl0r)
-
-Bugfixes:
-* Passing a single hyphen as an option value works now (courtesy of @tistre)
-
-
-## 2.2.0 (2014-09-13)
-
-Features:
-* Added method to customize the help message (courtesy of @mfn)
-* Option now has a static create method for call chaining in PHP 5.3 (courtesy of @kamermans)
-
-
-## 2.1.0 (2014-02-28)
-
-Features:
-* Added setters for default values and validation to Option
-
-
-## 2.0.0 (2014-01-30)
-
-Features:
-* Argument validation (courtesy of @jochenvdv)
-
-
-## 2.0.0-RC.1 (2014-01-17)
-
-Changes:
-* Namespace is now Ulrichsg\Getopt
-* Public API has been cleaned up, please refer to the documentation
-
-
-## 1.4.1 (2013-12-13)
-
-Bugfixes:
-* Long options are required to be longer than 1 character
-* Passing duplicate option names to the constructor is forbidden by default
-
-
-## 1.4.0 (2013-12-13)
-
-Features:
-* Options can be numeric (courtesy of @patinthehat)
-* Additional convenience methods for working with operands (ditto)
-
-
-## 1.3.0 (2013-12-07)
-
-Features:
-* Default values for options
-* ArrayAccess, Countable and Traversable support
-* Can set program name to enhance help message (courtesy of @misterion)
-
-
-## 1.2.0 (2013-11-14)
-
-Features:
-* Allow passing incomplete option arrays
-
-
-## 1.1.0 (2013-06-19)
-
-Features:
-* Added help text printing functionality
-
-Bugfixes:
-* Fixed passing a mandatory argument to the last in a sequence of collapsed short options
-
-
-## 1.0.1 (2012-05-20)
-
-Bugfixes:
-* Fixed bug where '0' could not be passed as an option value
-
diff --git a/vendor/ulrichsg/getopt-php/LICENSE b/vendor/ulrichsg/getopt-php/LICENSE
deleted file mode 100644
index 652095936b3b2dce8edd14115b96c8b3153fde6a..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/LICENSE
+++ /dev/null
@@ -1,17 +0,0 @@
-Copyright (c) 2011-2014 Ulrich Schmidt-Goertz <ulrich at schmidt-goertz.de>
-
-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.
diff --git a/vendor/ulrichsg/getopt-php/Makefile b/vendor/ulrichsg/getopt-php/Makefile
deleted file mode 100644
index e3d5698ede36a4330f109e5e2f289f2a518f416f..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-# vim: tabstop=4:softtabstop=4:shiftwidth=4:noexpandtab
-
-help:
-
-	@echo "Usual targets:"
-	@echo "  test - run test suites"
-	@echo ""
-	@echo "Other targets:"
-	@echo "  install-composer - install composer"
-	@echo "  install-dependencies - install/update all vendor libraries using composer"
-	@echo "  install-dev-dependencies - install/update all vendor libraries necessary for development"
-	@echo ""
-	@exit 0
-
-test:
-
-	@vendor/bin/phpunit
-
-install-composer:
-
-	@if [ ! -d ./bin ]; then mkdir bin; fi
-	@if [ ! -f ./bin/composer.phar ]; then curl -s http://getcomposer.org/installer | php -n -d allow_url_fopen=1 -d date.timezone="Europe/Berlin" -- --install-dir=./bin/; fi
-
-install-dependencies:
-
-	@make install-composer
-	@php -n -d allow_url_fopen=1 -d date.timezone="Europe/Berlin" ./bin/composer.phar -- update
-
-install-dev-dependencies:
-
-	@make install-composer
-	@php -n -d allow_url_fopen=1 -d date.timezone="Europe/Berlin" ./bin/composer.phar update --dev
-	
-.PHONY: test help
-
diff --git a/vendor/ulrichsg/getopt-php/README.markdown b/vendor/ulrichsg/getopt-php/README.markdown
deleted file mode 100644
index d48917ad4a1a6be9098e30f7b70db09fbed71aee..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/README.markdown
+++ /dev/null
@@ -1,28 +0,0 @@
-Getopt.PHP
-==========
-
-Getopt.PHP is a library for command-line argument processing. It supports PHP version 5.3 and above.
-
-Features
---------
-
-* Supports both short (eg. `-v`) and long (eg. `--version`) options
-* Option aliasing, ie. an option can have both a long and a short version
-* Collapsed short options (eg. `-abc` instead of `-a -b -c`)
-* Cumulative options (eg. `-vvv`)
-* Options may take optional or mandatory arguments
-* Two alternative notations for long options with arguments: `--option value` and `--option=value`
-* Collapsed short options with mandatory argument at the end (eg. `-ab 1` instead of `-a -b 1`)
-
-Documentation
--------------
-
-* [Documentation for the current version (2.0+)](http://ulrichsg.github.io/getopt-php/)
-* [Legacy documentation (1.4)](https://github.com/ulrichsg/getopt-php/blob/2aa8ab1be57200af4cc51447d2a6c244b75ca70b/README.markdown)
-
-License
--------
-
-Getopt.PHP is published under the [MIT License](http://www.opensource.org/licenses/mit-license.php).
-
-[![Build Status](https://travis-ci.org/ulrichsg/getopt-php.png)](https://travis-ci.org/ulrichsg/getopt-php)
diff --git a/vendor/ulrichsg/getopt-php/composer.json b/vendor/ulrichsg/getopt-php/composer.json
deleted file mode 100644
index 8ed9ee8481fcb895fde415e172da0192a75fda5d..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/composer.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "name": "ulrichsg/getopt-php",
-    "type": "library",
-    "description": "Command line arguments parser for PHP 5.3",
-    "homepage": "http://ulrichsg.github.io/getopt-php",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Ulrich Schmidt-Goertz",
-            "email": "ulrich@schmidt-goertz.de"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.0"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "3.7.*"
-    },
-    "autoload": {
-        "psr-0": {
-            "Ulrichsg\\": "src"
-        }
-    }
-}
diff --git a/vendor/ulrichsg/getopt-php/phpunit.xml b/vendor/ulrichsg/getopt-php/phpunit.xml
deleted file mode 100644
index 24e4942e16a53041a6413d7f76dce01bed75b405..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/phpunit.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit 
-    bootstrap="vendor/autoload.php"
-    colors="true"
-    convertErrorsToExceptions="true"
-    convertNoticesToExceptions="true"
-    convertWarningsToExceptions="true"
-    stopOnFailure="true"
-    syntaxCheck="true"
->
-    <testsuites>
-        <testsuite name="basic">
-            <directory>test</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory suffix=".php">src</directory>
-        </whitelist>
-    </filter>
-
-    <logging>
-        <log type="coverage-html"
-            target="build/coverage"
-            charset="UTF-8"
-            yui="true"
-            highlight="true"
-            lowUpperBound="40"
-            highLowerBound="70"
-        />
-    </logging>
-
-</phpunit>
diff --git a/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/Argument.php b/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/Argument.php
deleted file mode 100644
index 55dbe2950585c9a45a98d8327923fe1cece81e77..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/Argument.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-
-namespace Ulrichsg\Getopt;
-
-class Argument
-{
-    /** @var string */
-    private $default;
-    /** @var callable */
-    private $validation;
-    /** @var string */
-    private $name;
-
-    /**
-     * Creates a new argument.
-     * 
-     * @param scalar|null $default Default value or NULL
-     * @param callable|null $validation a validation function (optional)
-     * @throws \InvalidArgumentException
-     */
-    public function __construct($default = null, $validation = null, $name = "arg")
-    {
-        if (!is_null($default)) {
-            $this->setDefaultValue($default);
-        }
-        if (!is_null($validation)) {
-            $this->setValidation($validation);
-        }
-        $this->name = $name;
-    }
-
-    /**
-     * Set the default value
-     * 
-     * @param scalar $value
-     * @return Argument this object (for chaining calls)
-     * @throws \InvalidArgumentException
-     */
-    public function setDefaultValue($value)
-    {
-        if (!is_scalar($value)) {
-            throw new \InvalidArgumentException("Default value must be scalar");
-        }
-        $this->default = $value;
-        return $this;
-    }
-
-    /**
-     * Set a validation function.
-     * The function must take a string and return true if it is valid, false otherwise.
-     * 
-     * @param callable $callable
-     * @return Argument this object (for chaining calls)
-     * @throws \InvalidArgumentException
-     */
-    public function setValidation($callable)
-    {
-        if (!is_callable($callable)) {
-            throw new \InvalidArgumentException("Validation must be a callable");
-        }
-        $this->validation = $callable;
-        return $this;
-    }
-
-    /**
-     * Check if an argument validates according to the specification.
-     * 
-     * @param string $arg
-     * @return bool
-     */
-    public function validates($arg)
-    {
-        return (bool)call_user_func($this->validation, $arg);
-    }
-
-    /**
-     * Check if the argument has a validation function
-     * 
-     * @return bool
-     */
-    public function hasValidation()
-    {
-        return isset($this->validation);
-    }
-
-    /**
-     * Check whether the argument has a default value
-     * 
-     * @return boolean
-     */
-    public function hasDefaultValue()
-    {
-        return !empty($this->default);
-    }
-
-    /**
-     * Retrieve the default value
-     * 
-     * @return scalar|null
-     */
-    public function getDefaultValue()
-    {
-        return $this->default;
-    }
-
-    /**
-     * Retrieve the argument name
-     *
-     * @return string
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-}
diff --git a/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/CommandLineParser.php b/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/CommandLineParser.php
deleted file mode 100644
index 202068028e58f1ad925ae1d1a903acde1153fec7..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/CommandLineParser.php
+++ /dev/null
@@ -1,233 +0,0 @@
-<?php
-
-namespace Ulrichsg\Getopt;
-
-/**
- * Parses command line arguments according to a list of allowed options.
- */
-class CommandLineParser
-{
-    /** @var Option[] */
-    private $optionList;
-
-    private $options = array();
-    private $operands = array();
-
-    /**
-     * Creates a new instance.
-     *
-     * @param Option[] $optionList the list of allowed options
-     */
-    public function __construct(array $optionList)
-    {
-        $this->optionList = $optionList;
-    }
-
-    /**
-     * Parses the given arguments and converts them into options and operands.
-     *
-     * @param mixed $arguments a string or an array with one argument per element
-     */
-    public function parse($arguments)
-    {
-        if (!is_array($arguments)) {
-            $arguments = explode(' ', $arguments);
-        }
-        $operands = array();
-        $numArgs = count($arguments);
-        for ($i = 0; $i < $numArgs; ++$i) {
-            $arg = trim($arguments[$i]);
-            if (empty($arg)) {
-                continue;
-            }
-            if (($arg === '--') || ($arg === '-') || (mb_substr($arg, 0, 1) !== '-')){
-                // no more options, treat the remaining arguments as operands
-                $firstOperandIndex = ($arg == '--') ? $i + 1 : $i;
-                $operands = array_slice($arguments, $firstOperandIndex);
-                break;
-            }
-            if (mb_substr($arg, 0, 2) == '--') {
-                $this->addLongOption($arguments, $i);
-            } else {
-                $this->addShortOption($arguments, $i);
-            }
-        } // endfor
-
-        $this->addDefaultValues();
-
-        // remove '--' from operands array
-        foreach ($operands as $operand) {
-            if ($operand !== '--') {
-                $this->operands[] = $operand;
-            }
-        }
-    }
-
-    /**
-     * Returns the options created by a previous invocation of parse().
-     *
-     * @return array
-     */
-    public function getOptions()
-    {
-        return $this->options;
-    }
-
-
-    /**
-     * Returns the operands created by a previous invocation of parse(),
-     *
-     * @return array
-     */
-    public function getOperands()
-    {
-        return $this->operands;
-    }
-
-    private function addShortOption($arguments, &$i)
-    {
-        $numArgs = count($arguments);
-        $option = mb_substr($arguments[$i], 1);
-        if (mb_strlen($option) > 1) {
-            // multiple options strung together
-            $options = $this->splitString($option, 1);
-            foreach ($options as $j => $ch) {
-                if ($j < count($options) - 1
-                        || !(
-                                $i < $numArgs - 1
-                                && ((mb_substr($arguments[$i + 1], 0, 1) !== '-') || ($arguments[$i + 1] === '-'))
-                                && $this->optionHasArgument($ch)
-                        )
-                ) {
-                    $this->addOption($ch, null);
-                } else { // e.g. `ls -sw 100`
-                    $value = $arguments[$i + 1];
-                    ++$i;
-                    $this->addOption($ch, $value);
-                }
-            }
-        } else {
-            if ($i < $numArgs - 1
-                    && ((mb_substr($arguments[$i + 1], 0, 1) !== '-') || ($arguments[$i + 1] === '-'))
-                    && $this->optionHasArgument($option)
-            ) {
-                $value = $arguments[$i + 1];
-                ++$i;
-            } else {
-                $value = null;
-            }
-            $this->addOption($option, $value);
-        }
-    }
-
-    private function addLongOption($arguments, &$i)
-    {
-        $option = mb_substr($arguments[$i], 2);
-        if (strpos($option, '=') === false) {
-            if ($i < count($arguments) - 1
-                    && ((mb_substr($arguments[$i + 1], 0, 1) !== '-') || ($arguments[$i + 1] === '-'))
-                    && $this->optionHasArgument($option)
-            ) {
-                $value = $arguments[$i + 1];
-                ++$i;
-            } else {
-                $value = null;
-            }
-        } else {
-            list($option, $value) = explode('=', $option, 2);
-        }
-        $this->addOption($option, $value);
-    }
-
-    /**
-     * Add an option to the list of known options.
-     *
-     * @param string $string the option's name
-     * @param string $value the option's value (or null)
-     * @throws \UnexpectedValueException
-     * @return void
-     */
-    private function addOption($string, $value)
-    {
-        foreach ($this->optionList as $option) {
-            if ($option->matches($string)) {
-                if ($option->mode() == Getopt::REQUIRED_ARGUMENT && !mb_strlen($value)) {
-                    throw new \UnexpectedValueException("Option '$string' must have a value");
-                }
-                if ($option->getArgument()->hasValidation()) {
-                    if ((mb_strlen($value) > 0) && !$option->getArgument()->validates($value)) {
-                        throw new \UnexpectedValueException("Option '$string' has an invalid value");
-                    }
-                }
-                // for no-argument options, check if they are duplicate
-                if ($option->mode() == Getopt::NO_ARGUMENT) {
-                    $oldValue = isset($this->options[$string]) ? $this->options[$string] : null;
-                    $value = is_null($oldValue) ? 1 : $oldValue + 1;
-                }
-                // for optional-argument options, set value to 1 if none was given
-                $value = (mb_strlen($value) > 0) ? $value : 1;
-                // add both long and short names (if they exist) to the option array to facilitate lookup
-                if ($option->short()) {
-                    $this->options[$option->short()] = $value;
-                }
-                if ($option->long()) {
-                    $this->options[$option->long()] = $value;
-                }
-                return;
-            }
-        }
-        throw new \UnexpectedValueException("Option '$string' is unknown");
-    }
-
-    /**
-     * If there are options with default values that were not overridden by the parsed option string,
-     * add them to the list of known options.
-     */
-    private function addDefaultValues()
-    {
-        foreach ($this->optionList as $option) {
-            if ($option->getArgument()->hasDefaultValue()
-                    && !isset($this->options[$option->short()])
-                    && !isset($this->options[$option->long()])
-            ) {
-                if ($option->short()) {
-                    $this->addOption($option->short(), $option->getArgument()->getDefaultValue());
-                }
-                if ($option->long()) {
-                    $this->addOption($option->long(), $option->getArgument()->getDefaultValue());
-                }
-            }
-        }
-    }
-
-    /**
-     * Return true if the given option can take an argument, false if it can't or is unknown.
-     *
-     * @param string $name the option's name
-     * @return boolean
-     */
-    private function optionHasArgument($name)
-    {
-        foreach ($this->optionList as $option) {
-            if ($option->matches($name)) {
-                return $option->mode() != Getopt::NO_ARGUMENT;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Split the string into individual characters,
-     *
-     * @param string $string string to split
-     * @return array
-     */
-    private function splitString($string)
-    {
-        $result = array();
-        for ($i = 0; $i < mb_strlen($string, "UTF-8"); ++$i) {
-            $result[] = mb_substr($string, $i, 1, "UTF-8");
-        }
-        return $result;
-    }
-}
diff --git a/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/Getopt.php b/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/Getopt.php
deleted file mode 100644
index bd6b7ad5279efe25a82a8dd1c9bcc03ef8513301..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/Getopt.php
+++ /dev/null
@@ -1,295 +0,0 @@
-<?php
-
-namespace Ulrichsg\Getopt;
-
-/**
- * Getopt.PHP allows for easy processing of command-line arguments.
- * It is a more powerful, object-oriented alternative to PHP's built-in getopt() function.
- *
- * @version 2.1.0
- * @license MIT
- * @link    http://ulrichsg.github.io/getopt-php
- */
-class Getopt implements \Countable, \ArrayAccess, \IteratorAggregate
-{
-    const NO_ARGUMENT = 0;
-    const REQUIRED_ARGUMENT = 1;
-    const OPTIONAL_ARGUMENT = 2;
-
-    /** @var OptionParser */
-    private $optionParser;
-    /** @var string */
-    private $scriptName;
-    /** @var Option[] */
-    private $optionList = array();
-    /** @var array */
-    private $options = array();
-    /** @var array */
-    private $operands = array();
-    /** @var string */
-    private $banner =  "Usage: %s [options] [operands]\n";
-
-    /**
-     * Creates a new Getopt object.
-     *
-     * The argument $options can be either a string in the format accepted by the PHP library
-     * function getopt() or an array.
-     *
-     * @param mixed $options Array of options, a String, or null (see documentation for details)
-     * @param int $defaultType The default option type to use when omitted (optional)
-     * @throws \InvalidArgumentException
-     *
-     * @link https://www.gnu.org/s/hello/manual/libc/Getopt.html GNU Getopt manual
-     */
-    public function __construct($options = null, $defaultType = Getopt::NO_ARGUMENT)
-    {
-        $this->optionParser = new OptionParser($defaultType);
-        if ($options !== null) {
-            $this->addOptions($options);
-        }
-    }
-
-    /**
-     * Extends the list of known options. Takes the same argument types as the constructor.
-     *
-     * @param mixed $options
-     * @throws \InvalidArgumentException
-     */
-    public function addOptions($options)
-    {
-        if (is_string($options)) {
-            $this->mergeOptions($this->optionParser->parseString($options));
-        } elseif (is_array($options)) {
-            $this->mergeOptions($this->optionParser->parseArray($options));
-        } else {
-            throw new \InvalidArgumentException("Getopt(): argument must be string or array");
-        }
-    }
-
-    /**
-     * Merges new options with the ones already in the Getopt optionList, making sure the resulting list is free of
-     * conflicts.
-     *
-     * @param Option[] $options The list of new options
-     * @throws \InvalidArgumentException
-     */
-    private function mergeOptions(array $options)
-    {
-        /** @var Option[] $mergedList */
-        $mergedList = array_merge($this->optionList, $options);
-        $duplicates = array();
-        foreach ($mergedList as $option) {
-            foreach ($mergedList as $otherOption) {
-                if (($option === $otherOption) || in_array($otherOption, $duplicates)) {
-                    continue;
-                }
-                if ($this->optionsConflict($option, $otherOption)) {
-                    throw new \InvalidArgumentException('Failed to add options due to conflict');
-                }
-                if (($option->short() === $otherOption->short()) && ($option->long() === $otherOption->long())) {
-                    $duplicates[] = $option;
-                }
-            }
-        }
-        foreach ($mergedList as $index => $option) {
-            if (in_array($option, $duplicates)) {
-                unset($mergedList[$index]);
-            }
-        }
-        $this->optionList = array_values($mergedList);
-    }
-
-    private function optionsConflict(Option $option1, Option $option2) {
-        if ((is_null($option1->short()) && is_null($option2->short()))
-                || (is_null($option1->long()) && is_null($option2->long()))) {
-            return false;
-        }
-        return ((($option1->short() === $option2->short()) && ($option1->long() !== $option2->long()))
-                || (($option1->short() !== $option2->short()) && ($option1->long() === $option2->long())));
-    }
-
-    /**
-     * Evaluate the given arguments. These can be passed either as a string or as an array.
-     * If nothing is passed, the running script's command line arguments are used.
-     *
-     * An {@link \UnexpectedValueException} or {@link \InvalidArgumentException} is thrown
-     * when the arguments are not well-formed or do not conform to the options passed by the user.
-     *
-     * @param mixed $arguments optional ARGV array or space separated string
-     */
-    public function parse($arguments = null)
-    {
-        $this->options = array();
-        if (!isset($arguments)) {
-            global $argv;
-            $arguments = $argv;
-            $this->scriptName = array_shift($arguments); // $argv[0] is the script's name
-        } elseif (is_string($arguments)) {
-            $this->scriptName = $_SERVER['PHP_SELF'];
-            $arguments = explode(' ', $arguments);
-        }
-
-        $parser = new CommandLineParser($this->optionList);
-        $parser->parse($arguments);
-        $this->options = $parser->getOptions();
-        $this->operands = $parser->getOperands();
-    }
-
-    /**
-     * Returns the value of the given option. Must be invoked after parse().
-     *
-     * The return value can be any of the following:
-     * <ul>
-     *   <li><b>null</b> if the option is not given and does not have a default value</li>
-     *   <li><b>the default value</b> if it has been defined and the option is not given</li>
-     *   <li><b>an integer</b> if the option is given without argument. The
-     *       returned value is the number of occurrences of the option.</li>
-     *   <li><b>a string</b> if the option is given with an argument. The returned value is that argument.</li>
-     * </ul>
-     *
-     * @param string $name The (short or long) option name.
-     * @return mixed
-     */
-    public function getOption($name)
-    {
-        return isset($this->options[$name]) ? $this->options[$name] : null;
-    }
-
-    /**
-     * Returns the list of options. Must be invoked after parse() (otherwise it returns an empty array).
-     *
-     * @return array
-     */
-    public function getOptions()
-    {
-        return $this->options;
-    }
-
-    /**
-     * Returns the list of operands. Must be invoked after parse().
-     *
-     * @return array
-     */
-    public function getOperands()
-    {
-        return $this->operands;
-    }
-
-    /**
-     * Returns the i-th operand (starting with 0), or null if it does not exist. Must be invoked after parse().
-     *
-     * @param int $i
-     * @return string
-     */
-    public function getOperand($i)
-    {
-        return ($i < count($this->operands)) ? $this->operands[$i] : null;
-    }
-
-    /**
-     * Returns the banner string
-     *
-     * @return string
-     */
-    public function getBanner()
-    {
-        return $this->banner;
-    }
-
-    /**
-     * Set the banner string
-     *
-     * @param string $banner    The banner string; will be passed to sprintf(), can include %s for current scripts name.
-     *                          Be sure to include a trailing line feed.
-     * @return Getopt
-     */
-    public function setBanner($banner)
-    {
-        $this->banner = $banner;
-        return $this;
-    }
-
-    /**
-     * Returns an usage information text generated from the given options.
-     * @param int $padding Number of characters to pad output of options to
-     * @return string
-     */
-    public function getHelpText($padding = 25)
-    {
-        $helpText = sprintf($this->getBanner(), $this->scriptName);
-        $helpText .= "Options:\n";
-        foreach ($this->optionList as $option) {
-            $mode = '';
-            switch ($option->mode()) {
-                case self::NO_ARGUMENT:
-                    $mode = '';
-                    break;
-                case self::REQUIRED_ARGUMENT:
-                    $mode = "<".$option->getArgument()->getName().">";
-                    break;
-                case self::OPTIONAL_ARGUMENT:
-                    $mode = "[<".$option->getArgument()->getName().">]";
-                    break;
-            }
-            $short = ($option->short()) ? '-'.$option->short() : '';
-            $long = ($option->long()) ? '--'.$option->long() : '';
-            if ($short && $long) {
-                $options = $short.', '.$long;
-            } else {
-                $options = $short ? : $long;
-            }
-            $padded = str_pad(sprintf("  %s %s", $options, $mode), $padding);
-            $helpText .= sprintf("%s %s\n", $padded, $option->getDescription());
-        }
-        return $helpText;
-    }
-
-
-    /*
-     * Interface support functions
-     */
-
-    public function count()
-    {
-        return count($this->options);
-    }
-
-    public function offsetExists($offset)
-    {
-        return isset($this->options[$offset]);
-    }
-
-    public function offsetGet($offset)
-    {
-        return $this->getOption($offset);
-    }
-
-    public function offsetSet($offset, $value)
-    {
-        throw new \LogicException('Getopt is read-only');
-    }
-
-    public function offsetUnset($offset)
-    {
-        throw new \LogicException('Getopt is read-only');
-    }
-
-    public function getIterator()
-    {
-        // For options that have both short and long names, $this->options has two entries.
-        // We don't want this when iterating, so we have to filter the duplicates out.
-        $filteredOptions = array();
-        foreach ($this->options as $name => $value) {
-            $keep = true;
-            foreach ($this->optionList as $option) {
-                if ($option->long() == $name && !is_null($option->short())) {
-                    $keep = false;
-                }
-            }
-            if ($keep) {
-                $filteredOptions[$name] = $value;
-            }
-        }
-        return new \ArrayIterator($filteredOptions);
-    }
-}
diff --git a/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/Option.php b/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/Option.php
deleted file mode 100644
index c2924bc11e0d54a772ac87a6c301ae2fd8719952..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/Option.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-
-namespace Ulrichsg\Getopt;
-
-/**
- * Represents an option that Getopt accepts.
- */
-class Option
-{
-    private $short;
-    private $long;
-    private $mode;
-    private $description = '';
-    private $argument;
-
-    /**
-     * Creates a new option.
-     *
-     * @param string $short the option's short name (a single letter or digit) or null for long-only options
-     * @param string $long the option's long name (a string of 2+ letter/digit/_/- characters, starting with a letter
-     *                     or digit) or null for short-only options
-     * @param int $mode whether the option can/must have an argument (one of the constants defined in the Getopt class)
-     *                  (optional, defaults to no argument)
-     * @throws \InvalidArgumentException if both short and long name are null
-     */
-    public function __construct($short, $long, $mode = Getopt::NO_ARGUMENT)
-    {
-        if (!$short && !$long) {
-            throw new \InvalidArgumentException("The short and long name may not both be empty");
-        }
-        $this->setShort($short);
-        $this->setLong($long);
-        $this->setMode($mode);
-        $this->argument = new Argument();
-    }
-
-    /**
-     * Defines a description for the option. This is only used for generating usage information.
-     *
-     * @param string $description
-     * @return Option this object (for chaining calls)
-     */
-    public function setDescription($description)
-    {
-        $this->description = $description;
-        return $this;
-    }
-
-	/**
-	 * Defines a default value for the option.
-	 *
-	 * @param mixed $value
-     * @return Option this object (for chaining calls)
-	 */
-	public function setDefaultValue($value)
-	{
-		$this->argument->setDefaultValue($value);
-		return $this;
-	}
-
-	/**
-	 * Defines a validation function for the option.
-	 *
-	 * @param callable $function
-	 * @return Option this object (for chaining calls)
-	 */
-	public function setValidation($function)
-	{
-		$this->argument->setValidation($function);
-		return $this;
-	}
-
-	/**
-     * Sets the argument object directly.
-     *
-     * @param Argument $arg
-     * @return Option this object (for chaining calls)
-     */
-    public function setArgument(Argument $arg)
-    {
-        if ($this->mode == Getopt::NO_ARGUMENT) {
-            throw new \InvalidArgumentException("Option should not have any argument");
-        }
-        $this->argument = $arg;
-        return $this;
-    }
-
-    /**
-     * Returns true if the given string is equal to either the short or the long name.
-     *
-     * @param string $string
-     * @return bool
-     */
-    public function matches($string)
-    {
-        return ($string === $this->short) || ($string === $this->long);
-    }
-
-    public function short()
-    {
-        return $this->short;
-    }
-
-    public function long()
-    {
-        return $this->long;
-    }
-
-    public function mode()
-    {
-        return $this->mode;
-    }
-
-    public function getDescription()
-    {
-        return $this->description;
-    }
-
-    /**
-     * Retrieve the argument object
-     * 
-     * @return Argument
-     */
-    public function getArgument()
-    {
-        return $this->argument;
-    }
-    
-    /**
-     * Fluent interface for constructor so options can be added during construction
-     * @see Options::__construct()
-     */
-    public static function create($short, $long, $mode = Getopt::NO_ARGUMENT)
-    {
-    	return new self($short, $long, $mode);
-    }
-
-    private function setShort($short)
-    {
-        if (!(is_null($short) || preg_match("/^[a-zA-Z0-9]$/", $short))) {
-            throw new \InvalidArgumentException("Short option must be null or a letter/digit, found '$short'");
-        }
-        $this->short = $short;
-    }
-
-    private function setLong($long)
-    {
-        if (!(is_null($long) || preg_match("/^[a-zA-Z0-9][a-zA-Z0-9_-]{1,}$/", $long))) {
-            throw new \InvalidArgumentException("Long option must be null or an alphanumeric string, found '$long'");
-        }
-        $this->long = $long;
-    }
-
-    private function setMode($mode)
-    {
-        if (!in_array($mode, array(Getopt::NO_ARGUMENT, Getopt::OPTIONAL_ARGUMENT, Getopt::REQUIRED_ARGUMENT), true)) {
-            throw new \InvalidArgumentException("Option mode must be one of "
-                ."Getopt::NO_ARGUMENT, Getopt::OPTIONAL_ARGUMENT and Getopt::REQUIRED_ARGUMENT");
-        }
-        $this->mode = $mode;
-    }
-}
diff --git a/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/OptionParser.php b/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/OptionParser.php
deleted file mode 100644
index 6bad0a0a8507fea1554d3fa6b4a594e0172368f6..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/src/Ulrichsg/Getopt/OptionParser.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-
-namespace Ulrichsg\Getopt;
-
-/**
- * Converts user-given option specifications into Option objects.
- */
-class OptionParser
-{
-    private $defaultMode;
-
-    /**
-     * Creates a new instance.
-     *
-     * @param int $defaultMode will be assigned to options when no mode is given for them.
-     */
-    public function __construct($defaultMode) {
-        $this->defaultMode = $defaultMode;
-    }
-
-    /**
-     * Parse a GNU-style option string.
-     *
-     * @param string $string the option string
-     * @return Option[]
-     * @throws \InvalidArgumentException
-     */
-    public function parseString($string)
-    {
-        if (!mb_strlen($string)) {
-            throw new \InvalidArgumentException('Option string must not be empty');
-        }
-        $options = array();
-        $eol = mb_strlen($string) - 1;
-        $nextCanBeColon = false;
-        for ($i = 0; $i <= $eol; ++$i) {
-            $ch = $string[$i];
-            if (!preg_match('/^[A-Za-z0-9]$/', $ch)) {
-                $colon = $nextCanBeColon ? " or ':'" : '';
-                throw new \InvalidArgumentException("Option string is not well formed: "
-                    ."expected a letter$colon, found '$ch' at position ".($i + 1));
-            }
-            if ($i == $eol || $string[$i + 1] != ':') {
-                $options[] = new Option($ch, null, Getopt::NO_ARGUMENT);
-                $nextCanBeColon = true;
-            } elseif ($i < $eol - 1 && $string[$i + 2] == ':') {
-                $options[] = new Option($ch, null, Getopt::OPTIONAL_ARGUMENT);
-                $i += 2;
-                $nextCanBeColon = false;
-            } else {
-                $options[] = new Option($ch, null, Getopt::REQUIRED_ARGUMENT);
-                ++$i;
-                $nextCanBeColon = true;
-            }
-        }
-        return $options;
-    }
-
-    /**
-     * Processes an option array. The array elements can either be Option objects or arrays conforming to the format
-     * (short, long, mode [, description [, default]]). See documentation for details.
-	 *
-	 * Developer note: Please don't add any further elements to the array. Future features should be configured only
-	 * through the Option class's methods.
-     *
-     * @param array $array
-     * @return Option[]
-     * @throws \InvalidArgumentException
-     */
-    public function parseArray(array $array)
-    {
-        if (empty($array)) {
-            throw new \InvalidArgumentException('No options given');
-        }
-        $options = array();
-        foreach ($array as $row) {
-            if ($row instanceof Option) {
-                $options[] = $row;
-            } elseif (is_array($row)) {
-                $options[] = $this->createOption($row);
-            } else {
-                throw new \InvalidArgumentException("Invalid option type, must be Option or array");
-            }
-
-        }
-        return $options;
-    }
-
-    /**
-     * @param array $row
-     * @return Option
-     */
-    private function createOption(array $row)
-    {
-        $rowSize = count($row);
-        if ($rowSize < 3) {
-            $row = $this->completeOptionArray($row);
-        }
-        $option = new Option($row[0], $row[1], $row[2]);
-        if ($rowSize >= 4) {
-            $option->setDescription($row[3]);
-        }
-        if ($rowSize >= 5 && $row[2] != Getopt::NO_ARGUMENT) {
-            $option->setArgument(new Argument($row[4]));
-        }
-        return $option;
-    }
-
-    /**
-     * When using arrays, instead of a full option spec ([short, long, type]) users can leave out one or more of
-     * these parts and have Getopt fill them in intelligently:
-     * - If either the short or the long option string is left out, the first element of the given array is interpreted
-     *   as either short (if it has length 1) or long, and the other one is set to null.
-     * - If the type is left out, it is set to NO_ARGUMENT.
-     *
-     * @param array $row
-     * @return array
-     */
-    private function completeOptionArray(array $row)
-    {
-        $short = (strlen($row[0]) == 1) ? $row[0] : null;
-
-        $long = null;
-        if (is_null($short)) {
-            $long = $row[0];
-        } elseif (count($row) > 1 && !is_int($row[1])) {
-            $long = $row[1];
-        }
-
-        $mode = $this->defaultMode;
-        if (count($row) == 2 && is_int($row[1])) {
-            $mode = $row[1];
-        }
-
-        return array($short, $long, $mode);
-    }
-}
diff --git a/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/ArgumentTest.php b/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/ArgumentTest.php
deleted file mode 100644
index a40f3e452974bcbf2c760422ca2e03ebc6a79bd9..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/ArgumentTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace Ulrichsg\Getopt;
-
-class ArgumentTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $argument1 = new Argument();
-        $argument2 = new Argument(10);
-        $this->assertFalse($argument1->hasDefaultValue());
-        $this->assertEquals(10, $argument2->getDefaultValue());
-    }
-
-    public function testSetDefaultValueNotScalar()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $argument = new Argument();
-        $argument->setDefaultValue(array());
-    }
-
-    public function testValidates()
-    {
-        $test = $this;
-        $argument = new Argument();
-        $argument->setValidation(function($arg) use ($test, $argument) {
-            $test->assertEquals('test', $arg);
-            return true;
-        });
-        $this->assertTrue($argument->hasValidation());
-        $this->assertTrue($argument->validates('test'));
-    }
-
-    public function testSetValidationUncallable()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $argument = new Argument();
-        $argument->setValidation('');
-    }
-}
\ No newline at end of file
diff --git a/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/CommandLineParserTest.php b/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/CommandLineParserTest.php
deleted file mode 100644
index 8f5cb3de038f86b2cc75027c000edeb0920fa262..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/CommandLineParserTest.php
+++ /dev/null
@@ -1,341 +0,0 @@
-<?php
-
-namespace Ulrichsg\Getopt;
-
-class CommandLineParserTest extends \PHPUnit_Framework_TestCase
-{
-    public function testParseNoOptions()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null)
-        ));
-        $parser->parse('something');
-        $this->assertCount(0, $parser->getOptions());
-        $operands = $parser->getOperands();
-        $this->assertCount(1, $operands);
-        $this->assertEquals('something', $operands[0]);
-    }
-
-    public function testParseUnknownOption()
-    {
-        $this->setExpectedException('UnexpectedValueException');
-        $parser = new CommandLineParser(array(
-            new Option('a', null)
-        ));
-        $parser->parse('-b');
-    }
-
-    public function testParseRequiredArgumentMissing()
-    {
-        $this->setExpectedException('UnexpectedValueException');
-        $parser = new CommandLineParser(array(
-            new Option('a', null, Getopt::REQUIRED_ARGUMENT)
-        ));
-        $parser->parse('-a');
-    }
-
-    public function testParseMultipleOptionsWithOneHyphen()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null),
-            new Option('b', null)
-        ));
-        $parser->parse('-ab');
-
-        $options = $parser->getOptions();
-        $this->assertEquals(1, $options['a']);
-        $this->assertEquals(1, $options['b']);
-    }
-
-    public function testParseCumulativeOption()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null),
-            new Option('b', null)
-        ));
-        $parser->parse('-a -b -a -a');
-
-        $options = $parser->getOptions();
-        $this->assertEquals(3, $options['a']);
-        $this->assertEquals(1, $options['b']);
-    }
-
-    public function testParseCumulativeOptionShort()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null),
-            new Option('b', null)
-        ));
-        $parser->parse('-abaa');
-
-        $options = $parser->getOptions();
-        $this->assertEquals(3, $options['a']);
-        $this->assertEquals(1, $options['b']);
-    }
-
-    public function testParseShortOptionWithArgument()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null, Getopt::REQUIRED_ARGUMENT)
-        ));
-        $parser->parse('-a value');
-
-        $options = $parser->getOptions();
-        $this->assertEquals('value', $options['a']);
-    }
-
-    public function testParseZeroArgument()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null, Getopt::REQUIRED_ARGUMENT)
-        ));
-        $parser->parse('-a 0');
-
-        $options = $parser->getOptions();
-        $this->assertEquals('0', $options['a']);
-    }
-
-    public function testParseNumericOption()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null, Getopt::REQUIRED_ARGUMENT),
-            new Option('2', null)
-        ));
-        $parser->parse('-a 2 -2');
-
-        $options = $parser->getOptions();
-        $this->assertEquals('2', $options['a']);
-        $this->assertEquals(1, $options['2']);
-    }
-
-    public function testParseCollapsedShortOptionsRequiredArgumentMissing()
-    {
-        $this->setExpectedException('UnexpectedValueException');
-        $parser = new CommandLineParser(array(
-            new Option('a', null),
-            new Option('b', null, Getopt::REQUIRED_ARGUMENT)
-        ));
-        $parser->parse('-ab');
-    }
-
-    public function testParseCollapsedShortOptionsWithArgument()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null),
-            new Option('b', null, Getopt::REQUIRED_ARGUMENT)
-        ));
-        $parser->parse('-ab value');
-
-        $options = $parser->getOptions();
-        $this->assertEquals(1, $options['a']);
-        $this->assertEquals('value', $options['b']);
-    }
-
-    public function testParseNoArgumentOptionAndOperand()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null),
-        ));
-        $parser->parse('-a b');
-
-        $options = $parser->getOptions();
-        $this->assertEquals(1, $options['a']);
-        $operands = $parser->getOperands();
-        $this->assertCount(1, $operands);
-        $this->assertEquals('b', $operands[0]);
-    }
-
-    public function testParseOperandsOnly()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null, Getopt::REQUIRED_ARGUMENT),
-            new Option('b', null)
-        ));
-        $parser->parse('-- -a -b');
-
-        $this->assertCount(0, $parser->getOptions());
-        $operands = $parser->getOperands();
-        $this->assertCount(2, $operands);
-        $this->assertEquals('-a', $operands[0]);
-        $this->assertEquals('-b', $operands[1]);
-    }
-
-    public function testParseLongOptionWithoutArgument()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('o', 'option', Getopt::OPTIONAL_ARGUMENT)
-        ));
-        $parser->parse('--option');
-
-        $options = $parser->getOptions();
-        $this->assertEquals(1, $options['option']);
-    }
-
-    public function testParseLongOptionWithoutArgumentAndOperand()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('o', 'option', Getopt::NO_ARGUMENT)
-        ));
-        $parser->parse('--option something');
-
-        $options = $parser->getOptions();
-        $this->assertEquals(1, $options['option']);
-        $operands = $parser->getOperands();
-        $this->assertCount(1, $operands);
-        $this->assertEquals('something', $operands[0]);
-    }
-
-    public function testParseLongOptionWithArgument()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('o', 'option', Getopt::OPTIONAL_ARGUMENT)
-        ));
-        $parser->parse('--option value');
-
-        $options = $parser->getOptions();
-        $this->assertEquals('value', $options['option']);
-        $this->assertEquals('value', $options['o']);
-    }
-
-    public function testParseLongOptionWithEqualsSignAndArgument()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('o', 'option', Getopt::OPTIONAL_ARGUMENT)
-        ));
-        $parser->parse('--option=value something');
-
-        $options = $parser->getOptions();
-        $this->assertEquals('value', $options['option']);
-        $operands = $parser->getOperands();
-        $this->assertCount(1, $operands);
-        $this->assertEquals('something', $operands[0]);
-    }
-
-    public function testParseLongOptionWithValueStartingWithHyphen()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('o', 'option', Getopt::REQUIRED_ARGUMENT)
-        ));
-        $parser->parse('--option=-value');
-
-        $options = $parser->getOptions();
-        $this->assertEquals('-value', $options['option']);
-    }
-
-    public function testParseNoValueStartingWithHyphenRequired()
-    {
-        $this->setExpectedException('UnexpectedValueException');
-        $parser = new CommandLineParser(array(
-            new Option('a', null, Getopt::REQUIRED_ARGUMENT),
-            new Option('b', null)
-        ));
-        $parser->parse('-a -b');
-    }
-
-    public function testParseNoValueStartingWithHyphenOptional()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null, Getopt::OPTIONAL_ARGUMENT),
-            new Option('b', null)
-        ));
-        $parser->parse('-a -b');
-
-        $options = $parser->getOptions();
-        $this->assertEquals(1, $options['a']);
-        $this->assertEquals(1, $options['b']);
-    }
-
-    public function testParseOptionWithDefaultValue()
-    {
-        $optionA = new Option('a', null, Getopt::REQUIRED_ARGUMENT);
-        $optionA->setArgument(new Argument(10));
-        $optionB = new Option('b', 'beta', Getopt::REQUIRED_ARGUMENT);
-        $optionB->setArgument(new Argument(20));
-        $parser = new CommandLineParser(array($optionA, $optionB));
-        $parser->parse('-a 12');
-
-        $options = $parser->getOptions();
-        $this->assertEquals(12, $options['a']);
-        $this->assertEquals(20, $options['b']);
-        $this->assertEquals(20, $options['beta']);
-    }
-
-    public function testDoubleHyphenNotInOperands()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null, Getopt::REQUIRED_ARGUMENT)
-        ));
-        $parser->parse('-a 0 foo -- bar baz');
-
-        $options = $parser->getOptions();
-        $this->assertEquals('0', $options['a']);
-        $operands = $parser->getOperands();
-        $this->assertCount(3, $operands);
-        $this->assertEquals('foo', $operands[0]);
-        $this->assertEquals('bar', $operands[1]);
-        $this->assertEquals('baz', $operands[2]);
-    }
-
-    public function testSingleHyphenValue()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', 'alpha', Getopt::REQUIRED_ARGUMENT)
-        ));
-
-        $parser->parse('-a -');
-
-        $options = $parser->getOptions();
-        $this->assertEquals('-', $options['a']);
-        $operands = $parser->getOperands();
-        $this->assertCount(0, $operands);
-
-        $parser->parse('--alpha -');
-
-        $options = $parser->getOptions();
-        $this->assertEquals('-', $options['a']);
-        $operands = $parser->getOperands();
-        $this->assertCount(0, $operands);
-    }
-    
-    public function testSingleHyphenOperand()
-    {
-        $parser = new CommandLineParser(array(
-            new Option('a', null, Getopt::REQUIRED_ARGUMENT)
-        ));
-        $parser->parse('-a 0 -');
-
-        $options = $parser->getOptions();
-        $this->assertEquals('0', $options['a']);
-        $operands = $parser->getOperands();
-        $this->assertCount(1, $operands);
-        $this->assertEquals('-', $operands[0]);
-    }
-
-    public function testParseWithArgumentValidation()
-    {
-        $validation = 'is_numeric';
-        $optionA = new Option('a', null, Getopt::OPTIONAL_ARGUMENT);
-        $optionA->setArgument(new Argument(null, $validation));
-        $optionB = new Option('b', null, Getopt::REQUIRED_ARGUMENT);
-        $optionB->setArgument(new Argument(null, $validation));
-        $optionC = new Option('c', null, Getopt::OPTIONAL_ARGUMENT);
-        $optionC->setArgument(new Argument(null, $validation));
-        $parser = new CommandLineParser(array($optionA, $optionB, $optionC));
-        $parser->parse('-a 1 -b 2 -c');
-
-        $options = $parser->getOptions();
-        $this->assertSame('1', $options['a']);
-        $this->assertSame('2', $options['b']);
-        $this->assertSame(1, $options['c']);
-    }
-
-    public function testParseInvalidArgument()
-    {
-        $this->setExpectedException('UnexpectedValueException');
-        $validation = 'is_numeric';
-        $option = new Option('a', null, Getopt::OPTIONAL_ARGUMENT);
-        $option->setArgument(new Argument(null, $validation));
-        $parser = new CommandLineParser(array($option));
-        $parser->parse('-a nonnumeric');
-    }
-}
diff --git a/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/GetoptTest.php b/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/GetoptTest.php
deleted file mode 100644
index 0fc13f4353f80b52b15ddaa6de9f7e0c00325afc..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/GetoptTest.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-
-namespace Ulrichsg\Getopt;
-
-class GetoptTest extends \PHPUnit_Framework_TestCase
-{
-    public function testAddOptions()
-    {
-        $getopt = new Getopt();
-        $getopt->addOptions('a:');
-        $getopt->addOptions(
-            array(
-                array('s', null, Getopt::OPTIONAL_ARGUMENT),
-                array(null, 'long', Getopt::OPTIONAL_ARGUMENT),
-                array('n', 'name', Getopt::OPTIONAL_ARGUMENT)
-            )
-        );
-
-        $getopt->parse('-a aparam -s sparam --long longparam');
-        $this->assertEquals('aparam', $getopt->getOption('a'));
-        $this->assertEquals('longparam', $getopt->getOption('long'));
-        $this->assertEquals('sparam', $getopt->getOption('s'));
-    }
-
-    public function testAddOptionsChooseShortOrLongAutomatically()
-    {
-        $getopt = new Getopt();
-        $getopt->addOptions(
-            array(
-                array('s'),
-                array('long', Getopt::OPTIONAL_ARGUMENT)
-            )
-        );
-
-        $getopt->parse('-s --long longparam');
-        $this->assertEquals('longparam', $getopt->getOption('long'));
-        $this->assertEquals('1', $getopt->getOption('s'));
-    }
-
-    public function testAddOptionsUseDefaultArgumentType()
-    {
-        $getopt = new Getopt(null, Getopt::REQUIRED_ARGUMENT);
-        $getopt->addOptions(
-            array(
-                array('l', 'long')
-            )
-        );
-
-        $getopt->parse('-l something');
-        $this->assertEquals('something', $getopt->getOption('l'));
-
-        $getopt->parse('--long someOtherThing');
-        $this->assertEquals('someOtherThing', $getopt->getOption('long'));
-    }
-
-    public function testAddOptionsFailsOnInvalidArgument()
-    {
-        $this->setExpectedException('\InvalidArgumentException');
-        $getopt = new Getopt(null);
-        $getopt->addOptions(new Option('a', 'alpha'));
-    }
-
-    public function testAddOptionsOverwritesExistingOptions()
-    {
-        $getopt = new Getopt(array(
-            array('a', null, Getopt::REQUIRED_ARGUMENT)
-        ));
-        $getopt->addOptions(array(
-            array('a', null, Getopt::NO_ARGUMENT)
-        ));
-        $getopt->parse('-a foo');
-
-        $this->assertEquals(1, $getopt->getOption('a'));
-        $this->assertEquals('foo', $getopt->getOperand(0));
-    }
-
-    public function testAddOptionsFailsOnConflict()
-    {
-        $this->setExpectedException('\InvalidArgumentException');
-        $getopt = new Getopt(array(
-            array('v', 'version')
-        ));
-        $getopt->addOptions(array(
-            array('v', 'verbose')
-        ));
-    }
-
-    public function testParseUsesGlobalArgvWhenNoneGiven()
-    {
-        global $argv;
-        $argv = array('foo.php', '-a');
-
-        $getopt = new Getopt('a');
-        $getopt->parse();
-        $this->assertEquals(1, $getopt->getOption('a'));
-    }
-
-    public function testAccessMethods()
-    {
-        $getopt = new Getopt('a');
-        $getopt->parse('-a foo');
-
-        $options = $getopt->getOptions();
-        $this->assertCount(1, $options);
-        $this->assertEquals(1, $options['a']);
-        $this->assertEquals(1, $getopt->getOption('a'));
-
-        $operands = $getopt->getOperands();
-        $this->assertCount(1, $operands);
-        $this->assertEquals('foo', $operands[0]);
-        $this->assertEquals('foo', $getopt->getOperand(0));
-    }
-
-    public function testCountable()
-    {
-        $getopt = new Getopt('abc');
-        $getopt->parse('-abc');
-        $this->assertEquals(3, count($getopt));
-    }
-
-    public function testArrayAccess()
-    {
-        $getopt = new Getopt('q');
-        $getopt->parse('-q');
-        $this->assertEquals(1, $getopt['q']);
-    }
-
-    public function testIterable()
-    {
-        $getopt = new Getopt(array(
-            array(null, 'alpha', Getopt::NO_ARGUMENT),
-            array('b', 'beta', Getopt::REQUIRED_ARGUMENT)
-        ));
-        $getopt->parse('--alpha -b foo');
-        $expected = array('alpha' => 1, 'b' => 'foo'); // 'beta' should not occur
-        foreach ($getopt as $option => $value) {
-            $this->assertEquals($expected[$option], $value);
-        }
-    }
-
-    public function testHelpText()
-    {
-        $getopt = new Getopt(array(
-            array('a', 'alpha', Getopt::NO_ARGUMENT, 'Short and long options with no argument'),
-            array(null, 'beta', Getopt::OPTIONAL_ARGUMENT, 'Long option only with an optional argument'),
-            array('c', null, Getopt::REQUIRED_ARGUMENT, 'Short option only with a mandatory argument')
-        ));
-        $getopt->parse('');
-
-        $script = $_SERVER['PHP_SELF'];
-
-        $expected = "Usage: $script [options] [operands]\n";
-        $expected .= "Options:\n";
-        $expected .= "  -a, --alpha             Short and long options with no argument\n";
-        $expected .= "  --beta [<arg>]          Long option only with an optional argument\n";
-        $expected .= "  -c <arg>                Short option only with a mandatory argument\n";
-
-        $this->assertEquals($expected, $getopt->getHelpText());
-    }
-
-    public function testHelpTextWithoutDescriptions()
-    {
-        $getopt = new Getopt(array(
-            array('a', 'alpha', Getopt::NO_ARGUMENT),
-            array(null, 'beta', Getopt::OPTIONAL_ARGUMENT),
-            array('c', null, Getopt::REQUIRED_ARGUMENT)
-        ));
-        $getopt->parse('');
-
-        $script = $_SERVER['PHP_SELF'];
-
-        $expected = "Usage: $script [options] [operands]\n";
-        $expected .= "Options:\n";
-        $expected .= "  -a, --alpha             \n";
-        $expected .= "  --beta [<arg>]          \n";
-        $expected .= "  -c <arg>                \n";
-
-        $this->assertEquals($expected, $getopt->getHelpText());
-    }
-
-    public function testHelpTextNoParse()
-    {
-        $getopt = new Getopt();
-        $expected = "Usage:  [options] [operands]\nOptions:\n";
-        $this->assertSame($expected, $getopt->getHelpText());
-    }
-
-    public function testHelpTextWithCustomBanner()
-    {
-        $script = $_SERVER['PHP_SELF'];
-        
-        $getopt = new Getopt();
-        $getopt->setBanner("My custom Banner %s\n");
-        $this->assertSame("My custom Banner \nOptions:\n", $getopt->getHelpText());
-
-        $getopt->parse('');
-        $this->assertSame("My custom Banner $script\nOptions:\n", $getopt->getHelpText());
-    }
-}
diff --git a/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/OptionParserTest.php b/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/OptionParserTest.php
deleted file mode 100644
index ad11332bbb08711f8265b7a824216577833106c5..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/OptionParserTest.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-namespace Ulrichsg\Getopt;
-
-class OptionParserTest extends \PHPUnit_Framework_TestCase
-{
-    /** @var OptionParser */
-    private $parser;
-
-    public function setUp()
-    {
-        $this->parser = new OptionParser(Getopt::REQUIRED_ARGUMENT);
-    }
-
-    public function testParseString()
-    {
-        $options = $this->parser->parseString('ab:c::3');
-        $this->assertInternalType('array', $options);
-        $this->assertCount(4, $options);
-        foreach ($options as $option) {
-            $this->assertInstanceOf('Ulrichsg\Getopt\Option', $option);
-            $this->assertNull($option->long());
-            switch ($option->short()) {
-                case 'a':
-                case '3':
-                    $this->assertEquals(Getopt::NO_ARGUMENT, $option->mode());
-                    break;
-                case 'b':
-                    $this->assertEquals(Getopt::REQUIRED_ARGUMENT, $option->mode());
-                    break;
-                case 'c':
-                    $this->assertEquals(Getopt::OPTIONAL_ARGUMENT, $option->mode());
-                    break;
-                default:
-                    $this->fail('Unexpected option: '.$option->short());
-            }
-        }
-    }
-
-    public function testParseStringEmpty()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $this->parser->parseString('');
-    }
-
-    public function testParseStringInvalidCharacter()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $this->parser->parseString('ab:c::dä');
-    }
-
-    public function testParseStringStartsWithColon()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $this->parser->parseString(':ab:c::d');
-    }
-
-    public function testParseStringTripleColon()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $this->parser->parseString('ab:c:::d');
-    }
-
-    public function testParseArray()
-    {
-        $options = $this->parser->parseArray(
-            array(
-                array('a', 'alpha', Getopt::OPTIONAL_ARGUMENT, 'Description', 42),
-                new Option('b', 'beta'),
-                array('c')
-            )
-        );
-
-        $this->assertCount(3, $options);
-        foreach ($options as $option) {
-            $this->assertInstanceOf('Ulrichsg\Getopt\Option', $option);
-            switch ($option->short()) {
-                case 'a':
-                    $this->assertEquals('alpha', $option->long());
-                    $this->assertEquals(Getopt::OPTIONAL_ARGUMENT, $option->mode());
-                    $this->assertEquals('Description', $option->getDescription());
-                    $this->assertEquals(42, $option->getArgument()->getDefaultValue());
-                    break;
-                case 'b':
-                    $this->assertEquals('beta', $option->long());
-                    $this->assertEquals(Getopt::NO_ARGUMENT, $option->mode());
-                    $this->assertEquals('', $option->getDescription());
-                    break;
-                case 'c':
-                    $this->assertNull($option->long());
-                    $this->assertEquals(Getopt::REQUIRED_ARGUMENT, $option->mode());
-                    $this->assertEquals('', $option->getDescription());
-                    $this->assertFalse($option->getArgument()->hasDefaultValue());
-                    break;
-                default:
-                    $this->fail('Unexpected option: '.$option->short());
-            }
-        }
-    }
-
-    public function testParseArrayEmpty()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $this->parser->parseArray(array());
-    }
-
-    public function testParseArrayInvalid()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $this->parser->parseArray(array('a', 'b'));
-    }
-}
diff --git a/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/OptionTest.php b/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/OptionTest.php
deleted file mode 100644
index 2c881072efcf365dcad79010d9f8c4e5cc050a0b..0000000000000000000000000000000000000000
--- a/vendor/ulrichsg/getopt-php/test/Ulrichsg/Getopt/OptionTest.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-namespace Ulrichsg\Getopt;
-
-class OptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstruct()
-    {
-        $option = new Option('a', 'az-AZ09_', Getopt::OPTIONAL_ARGUMENT);
-        $this->assertEquals('a', $option->short());
-        $this->assertEquals('az-AZ09_', $option->long());
-        $this->assertEquals(Getopt::OPTIONAL_ARGUMENT, $option->mode());
-    }
-
-    public function testConstructEmptyOption()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        new Option(null, null, Getopt::NO_ARGUMENT);
-    }
-
-    public function testConstructNoLetter()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        new Option('?', null, Getopt::NO_ARGUMENT);
-    }
-
-    public function testConstructInvalidCharacter()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        new Option(null, 'öption', Getopt::NO_ARGUMENT);
-    }
-
-    public function testConstructInvalidArgumentType()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        new Option('a', null, 'no_argument');
-    }
-
-    public function testConstructLongOptionTooShort()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        new Option(null, 'a', Getopt::REQUIRED_ARGUMENT);
-    }
-
-    public function testSetArgument()
-    {
-        $option = new Option('a', null, Getopt::OPTIONAL_ARGUMENT);
-        $this->assertEquals($option, $option->setArgument(new Argument()));
-        $this->assertInstanceof('Ulrichsg\Getopt\Argument', $option->getArgument());
-    }
-
-    public function testSetArgumentWrongMode()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $option = new Option('a', null, Getopt::NO_ARGUMENT);
-        $option->setArgument(new Argument());
-    }
-
-	public function testSetDefaultValue()
-	{
-		$option = new Option('a', null, Getopt::OPTIONAL_ARGUMENT);
-		$this->assertEquals($option, $option->setDefaultValue(10));
-		$this->assertEquals(10, $option->getArgument()->getDefaultValue());
-	}
-
-	public function testSetValidation()
-	{
-		$option = new Option('a', null, Getopt::OPTIONAL_ARGUMENT);
-		$this->assertEquals($option, $option->setValidation('is_numeric'));
-		$this->assertTrue($option->getArgument()->hasValidation());
-	}
-}