diff --git a/composer.json b/composer.json
index 88a5674a9c81e062f53ecf61b4432d0f1c853f85..5925f2eec3c316600f00a2d857352f5496c12616 100755
--- a/composer.json
+++ b/composer.json
@@ -31,13 +31,13 @@
     	}
     },
     "require": {
-        "slim/slim": "^3.8",
+        "slim/slim": "^3.10",
         "respect/validation": "^1.1",
         "php-http/curl-client": "^1.7",
         "m4tthumphrey/php-gitlab-api": "^9.10",
         "jumbojett/openid-connect-php": "^0.3.0",
         "zf1/zend-search-lucene": "~1.12",
-        "setasign/fpdi-tcpdf": "2.0.0",
+        "setasign/fpdi-tcpdf": "^2.0.0",
         "php-http/guzzle6-adapter": "^1.1"
     }
 }
diff --git a/vendor/autoload.php b/vendor/autoload.php
index 2babe5dbc85338c037276b120a4034e8624c10b3..fe0dd20cce02d29f13f9a35368047581beaec531 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer/autoload_real.php';
 
-return ComposerAutoloaderInit3cf41326f2ce1ccc88c4676c4e39ea47::getLoader();
+return ComposerAutoloaderInitf21aebccfa6df888200dcb099aa69fbd::getLoader();
diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php
index 2abc338813c47a9565d9f4210586a3857ce3f313..b9035104607b8576c3c87febf92c4ea6d4825626 100644
--- a/vendor/composer/autoload_psr4.php
+++ b/vendor/composer/autoload_psr4.php
@@ -22,15 +22,12 @@ return array(
     'Resource\\' => array($baseDir . '/src/app/resource'),
     'Report\\' => array($baseDir . '/src/app/report'),
     'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
-    'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
     'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
     'Priority\\' => array($baseDir . '/src/app/priority'),
     'Parameter\\' => array($baseDir . '/src/app/parameter'),
-    'Nyholm\\Psr7\\' => array($vendorDir . '/nyholm/psr7/src'),
     'Notification\\' => array($baseDir . '/src/app/notification'),
     'Note\\' => array($baseDir . '/src/app/note'),
     'Link\\' => array($baseDir . '/src/app/link'),
-    'Interop\\Http\\Factory\\' => array($vendorDir . '/http-interop/http-factory/src'),
     'Interop\\Container\\' => array($vendorDir . '/container-interop/container-interop/src/Interop/Container'),
     'Http\\Promise\\' => array($vendorDir . '/php-http/promise/src'),
     'Http\\Message\\MultipartStream\\' => array($vendorDir . '/php-http/multipart-stream-builder/src'),
@@ -55,7 +52,6 @@ return array(
     'ContentManagement\\' => array($baseDir . '/src/app/contentManagement'),
     'Contact\\' => array($baseDir . '/src/app/contact'),
     'Clue\\StreamFilter\\' => array($vendorDir . '/clue/stream-filter/src'),
-    'Buzz\\' => array($vendorDir . '/kriswallsmith/buzz/lib'),
     'Basket\\' => array($baseDir . '/src/app/basket'),
     'Attachment\\' => array($baseDir . '/src/app/attachment'),
     'Action\\' => array($baseDir . '/src/app/action'),
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index 424a7b518c2fa79faad9a683d2b316952248e7e1..b8fbafd354ac72748157163a2587ff89ac3ae3ba 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInit3cf41326f2ce1ccc88c4676c4e39ea47
+class ComposerAutoloaderInitf21aebccfa6df888200dcb099aa69fbd
 {
     private static $loader;
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit3cf41326f2ce1ccc88c4676c4e39ea47
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInit3cf41326f2ce1ccc88c4676c4e39ea47', 'loadClassLoader'), true, true);
+        spl_autoload_register(array('ComposerAutoloaderInitf21aebccfa6df888200dcb099aa69fbd', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit3cf41326f2ce1ccc88c4676c4e39ea47', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInitf21aebccfa6df888200dcb099aa69fbd', 'loadClassLoader'));
 
         $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
         if ($useStaticLoader) {
             require_once __DIR__ . '/autoload_static.php';
 
-            call_user_func(\Composer\Autoload\ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47::getInitializer($loader));
+            call_user_func(\Composer\Autoload\ComposerStaticInitf21aebccfa6df888200dcb099aa69fbd::getInitializer($loader));
         } else {
             $map = require __DIR__ . '/autoload_namespaces.php';
             foreach ($map as $namespace => $path) {
@@ -48,19 +48,19 @@ class ComposerAutoloaderInit3cf41326f2ce1ccc88c4676c4e39ea47
         $loader->register(true);
 
         if ($useStaticLoader) {
-            $includeFiles = Composer\Autoload\ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47::$files;
+            $includeFiles = Composer\Autoload\ComposerStaticInitf21aebccfa6df888200dcb099aa69fbd::$files;
         } else {
             $includeFiles = require __DIR__ . '/autoload_files.php';
         }
         foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequire3cf41326f2ce1ccc88c4676c4e39ea47($fileIdentifier, $file);
+            composerRequiref21aebccfa6df888200dcb099aa69fbd($fileIdentifier, $file);
         }
 
         return $loader;
     }
 }
 
-function composerRequire3cf41326f2ce1ccc88c4676c4e39ea47($fileIdentifier, $file)
+function composerRequiref21aebccfa6df888200dcb099aa69fbd($fileIdentifier, $file)
 {
     if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
         require $file;
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index 8bcb68eaa5f625d7f4916c97f89c42c768b395d1..b125ed14c7c052f3e4612ec7580e7aa30c24b18c 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
 
 namespace Composer\Autoload;
 
-class ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47
+class ComposerStaticInitf21aebccfa6df888200dcb099aa69fbd
 {
     public static $files = array (
         'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
@@ -56,14 +56,12 @@ class ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47
         'P' => 
         array (
             'Psr\\Http\\Message\\' => 17,
-            'Psr\\Http\\Client\\' => 16,
             'Psr\\Container\\' => 14,
             'Priority\\' => 9,
             'Parameter\\' => 10,
         ),
         'N' => 
         array (
-            'Nyholm\\Psr7\\' => 12,
             'Notification\\' => 13,
             'Note\\' => 5,
         ),
@@ -73,7 +71,6 @@ class ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47
         ),
         'I' => 
         array (
-            'Interop\\Http\\Factory\\' => 21,
             'Interop\\Container\\' => 18,
         ),
         'H' => 
@@ -119,7 +116,6 @@ class ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47
         ),
         'B' => 
         array (
-            'Buzz\\' => 5,
             'Basket\\' => 7,
         ),
         'A' => 
@@ -194,10 +190,6 @@ class ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47
         array (
             0 => __DIR__ . '/..' . '/psr/http-message/src',
         ),
-        'Psr\\Http\\Client\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/psr/http-client/src',
-        ),
         'Psr\\Container\\' => 
         array (
             0 => __DIR__ . '/..' . '/psr/container/src',
@@ -210,10 +202,6 @@ class ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47
         array (
             0 => __DIR__ . '/../..' . '/src/app/parameter',
         ),
-        'Nyholm\\Psr7\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/nyholm/psr7/src',
-        ),
         'Notification\\' => 
         array (
             0 => __DIR__ . '/../..' . '/src/app/notification',
@@ -226,10 +214,6 @@ class ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47
         array (
             0 => __DIR__ . '/../..' . '/src/app/link',
         ),
-        'Interop\\Http\\Factory\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/http-interop/http-factory/src',
-        ),
         'Interop\\Container\\' => 
         array (
             0 => __DIR__ . '/..' . '/container-interop/container-interop/src/Interop/Container',
@@ -327,10 +311,6 @@ class ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47
         array (
             0 => __DIR__ . '/..' . '/clue/stream-filter/src',
         ),
-        'Buzz\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/kriswallsmith/buzz/lib',
-        ),
         'Basket\\' => 
         array (
             0 => __DIR__ . '/../..' . '/src/app/basket',
@@ -396,10 +376,10 @@ class ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47
     public static function getInitializer(ClassLoader $loader)
     {
         return \Closure::bind(function () use ($loader) {
-            $loader->prefixLengthsPsr4 = ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47::$prefixLengthsPsr4;
-            $loader->prefixDirsPsr4 = ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47::$prefixDirsPsr4;
-            $loader->prefixesPsr0 = ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47::$prefixesPsr0;
-            $loader->classMap = ComposerStaticInit3cf41326f2ce1ccc88c4676c4e39ea47::$classMap;
+            $loader->prefixLengthsPsr4 = ComposerStaticInitf21aebccfa6df888200dcb099aa69fbd::$prefixLengthsPsr4;
+            $loader->prefixDirsPsr4 = ComposerStaticInitf21aebccfa6df888200dcb099aa69fbd::$prefixDirsPsr4;
+            $loader->prefixesPsr0 = ComposerStaticInitf21aebccfa6df888200dcb099aa69fbd::$prefixesPsr0;
+            $loader->classMap = ComposerStaticInitf21aebccfa6df888200dcb099aa69fbd::$classMap;
 
         }, null, ClassLoader::class);
     }
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index b110d3d92018e301d06bae4331501f5c0330faac..540b2275b07b969dbb1407520d94b885c1410ca8 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1,56 +1,4 @@
 [
-    {
-        "name": "psr/http-message",
-        "version": "1.0.1",
-        "version_normalized": "1.0.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/php-fig/http-message.git",
-            "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
-            "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0"
-        },
-        "time": "2016-08-06T14:39:51+00:00",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Psr\\Http\\Message\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "PHP-FIG",
-                "homepage": "http://www.php-fig.org/"
-            }
-        ],
-        "description": "Common interface for HTTP messages",
-        "homepage": "https://github.com/php-fig/http-message",
-        "keywords": [
-            "http",
-            "http-message",
-            "psr",
-            "psr-7",
-            "request",
-            "response"
-        ]
-    },
     {
         "name": "phpseclib/phpseclib",
         "version": "2.0.1",
@@ -175,35 +123,40 @@
         "description": "Bare-bones OpenID Connect client"
     },
     {
-        "name": "php-http/message-factory",
-        "version": "v1.0.2",
-        "version_normalized": "1.0.2.0",
+        "name": "setasign/fpdi",
+        "version": "v2.0.3",
+        "version_normalized": "2.0.3.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/php-http/message-factory.git",
-            "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1"
+            "url": "https://github.com/Setasign/FPDI.git",
+            "reference": "5998a2f81ae5b4a59eb75ed65e6ec0518163de8d"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1",
-            "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1",
+            "url": "https://api.github.com/repos/Setasign/FPDI/zipball/5998a2f81ae5b4a59eb75ed65e6ec0518163de8d",
+            "reference": "5998a2f81ae5b4a59eb75ed65e6ec0518163de8d",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.4",
-            "psr/http-message": "^1.0"
+            "ext-zlib": "*",
+            "php": "^5.6 || ^7.0"
         },
-        "time": "2015-12-19T14:08:53+00:00",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0-dev"
-            }
+        "require-dev": {
+            "phpunit/phpunit": "~5.7",
+            "setasign/fpdf": "~1.8",
+            "tecnickcom/tcpdf": "~6.2"
         },
+        "suggest": {
+            "setasign/fpdf": "FPDI will extend this class but as it is also possible to use \"tecnickcom/tcpdf\" as an alternative there's no fixed dependency configured.",
+            "setasign/fpdi-fpdf": "Use this package to automatically evaluate dependencies to FPDF.",
+            "setasign/fpdi-tcpdf": "Use this package to automatically evaluate dependencies to TCPDF."
+        },
+        "time": "2018-04-18T13:00:41+00:00",
+        "type": "library",
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "Http\\Message\\": "src/"
+                "setasign\\Fpdi\\": "src/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -212,235 +165,158 @@
         ],
         "authors": [
             {
-                "name": "Márk Sági-Kazár",
-                "email": "mark.sagikazar@gmail.com"
+                "name": "Jan Slabon",
+                "email": "jan.slabon@setasign.com",
+                "homepage": "https://www.setasign.com"
+            },
+            {
+                "name": "Maximilian Kresse",
+                "email": "maximilian.kresse@setasign.com",
+                "homepage": "https://www.setasign.com"
             }
         ],
-        "description": "Factory interfaces for PSR-7 HTTP Message",
-        "homepage": "http://php-http.org",
+        "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.",
+        "homepage": "https://www.setasign.com/fpdi",
         "keywords": [
-            "factory",
-            "http",
-            "message",
-            "stream",
-            "uri"
+            "fpdf",
+            "fpdi",
+            "pdf"
         ]
     },
     {
-        "name": "clue/stream-filter",
-        "version": "v1.4.0",
-        "version_normalized": "1.4.0.0",
+        "name": "tecnickcom/tcpdf",
+        "version": "6.2.17",
+        "version_normalized": "6.2.17.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/clue/php-stream-filter.git",
-            "reference": "d80fdee9b3a7e0d16fc330a22f41f3ad0eeb09d0"
+            "url": "https://github.com/tecnickcom/TCPDF.git",
+            "reference": "64fc19439863e1b1314487a72a74d9bfd0b55a53"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/d80fdee9b3a7e0d16fc330a22f41f3ad0eeb09d0",
-            "reference": "d80fdee9b3a7e0d16fc330a22f41f3ad0eeb09d0",
+            "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/64fc19439863e1b1314487a72a74d9bfd0b55a53",
+            "reference": "64fc19439863e1b1314487a72a74d9bfd0b55a53",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "^5.0 || ^4.8"
+            "php": ">=5.3.0"
         },
-        "time": "2017-08-18T09:54:01+00:00",
+        "time": "2018-02-24T11:48:20+00:00",
         "type": "library",
         "installation-source": "dist",
         "autoload": {
-            "psr-4": {
-                "Clue\\StreamFilter\\": "src/"
-            },
-            "files": [
-                "src/functions.php"
+            "classmap": [
+                "config",
+                "include",
+                "tcpdf.php",
+                "tcpdf_parser.php",
+                "tcpdf_import.php",
+                "tcpdf_barcodes_1d.php",
+                "tcpdf_barcodes_2d.php",
+                "include/tcpdf_colors.php",
+                "include/tcpdf_filters.php",
+                "include/tcpdf_font_data.php",
+                "include/tcpdf_fonts.php",
+                "include/tcpdf_images.php",
+                "include/tcpdf_static.php",
+                "include/barcodes/datamatrix.php",
+                "include/barcodes/pdf417.php",
+                "include/barcodes/qrcode.php"
             ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "LGPL-3.0"
         ],
         "authors": [
             {
-                "name": "Christian Lück",
-                "email": "christian@lueck.tv"
+                "name": "Nicola Asuni",
+                "email": "info@tecnick.com",
+                "role": "lead"
             }
         ],
-        "description": "A simple and modern approach to stream filtering in PHP",
-        "homepage": "https://github.com/clue/php-stream-filter",
+        "description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
+        "homepage": "http://www.tcpdf.org/",
         "keywords": [
-            "bucket brigade",
-            "callback",
-            "filter",
-            "php_user_filter",
-            "stream",
-            "stream_filter_append",
-            "stream_filter_register"
+            "PDFD32000-2008",
+            "TCPDF",
+            "barcodes",
+            "datamatrix",
+            "pdf",
+            "pdf417",
+            "qrcode"
         ]
     },
     {
-        "name": "php-http/message",
-        "version": "1.6.0",
-        "version_normalized": "1.6.0.0",
+        "name": "setasign/fpdi-tcpdf",
+        "version": "v2.0.0",
+        "version_normalized": "2.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/php-http/message.git",
-            "reference": "2edd63bae5f52f79363c5f18904b05ce3a4b7253"
+            "url": "https://github.com/Setasign/FPDI-TCPDF.git",
+            "reference": "326df0f31ef0fab8f1e6559833b21a6275ae15bc"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/php-http/message/zipball/2edd63bae5f52f79363c5f18904b05ce3a4b7253",
-            "reference": "2edd63bae5f52f79363c5f18904b05ce3a4b7253",
+            "url": "https://api.github.com/repos/Setasign/FPDI-TCPDF/zipball/326df0f31ef0fab8f1e6559833b21a6275ae15bc",
+            "reference": "326df0f31ef0fab8f1e6559833b21a6275ae15bc",
             "shasum": ""
         },
         "require": {
-            "clue/stream-filter": "^1.3",
-            "php": ">=5.4",
-            "php-http/message-factory": "^1.0.2",
-            "psr/http-message": "^1.0"
-        },
-        "provide": {
-            "php-http/message-factory-implementation": "1.0"
-        },
-        "require-dev": {
-            "akeneo/phpspec-skip-example-extension": "^1.0",
-            "coduo/phpspec-data-provider-extension": "^1.0",
-            "ext-zlib": "*",
-            "guzzlehttp/psr7": "^1.0",
-            "henrikbjorn/phpspec-code-coverage": "^1.0",
-            "phpspec/phpspec": "^2.4",
-            "slim/slim": "^3.0",
-            "zendframework/zend-diactoros": "^1.0"
-        },
-        "suggest": {
-            "ext-zlib": "Used with compressor/decompressor streams",
-            "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
-            "slim/slim": "Used with Slim Framework PSR-7 implementation",
-            "zendframework/zend-diactoros": "Used with Diactoros Factories"
+            "setasign/fpdi": "^2.0",
+            "tecnickcom/tcpdf": "^6.2"
         },
-        "time": "2017-07-05T06:40:53+00:00",
+        "time": "2017-10-12T14:31:02+00:00",
         "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.6-dev"
-            }
-        },
         "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Http\\Message\\": "src/"
-            },
-            "files": [
-                "src/filters.php"
-            ]
-        },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
             "MIT"
         ],
         "authors": [
             {
-                "name": "Márk Sági-Kazár",
-                "email": "mark.sagikazar@gmail.com"
+                "name": "Jan Slabon",
+                "email": "jan.slabon@setasign.com",
+                "homepage": "https://www.setasign.com"
             }
         ],
-        "description": "HTTP Message related tools",
-        "homepage": "http://php-http.org",
+        "description": "Kind of metadata package for dependencies of the latest versions of FPDI and TCPDF.",
+        "homepage": "https://www.setasign.com/fpdi",
         "keywords": [
-            "http",
-            "message",
-            "psr-7"
+            "TCPDF",
+            "fpdi",
+            "pdf"
         ]
     },
     {
-        "name": "php-http/promise",
-        "version": "v1.0.0",
+        "name": "psr/container",
+        "version": "1.0.0",
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/php-http/promise.git",
-            "reference": "dc494cdc9d7160b9a09bd5573272195242ce7980"
+            "url": "https://github.com/php-fig/container.git",
+            "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/php-http/promise/zipball/dc494cdc9d7160b9a09bd5573272195242ce7980",
-            "reference": "dc494cdc9d7160b9a09bd5573272195242ce7980",
-            "shasum": ""
-        },
-        "require-dev": {
-            "henrikbjorn/phpspec-code-coverage": "^1.0",
-            "phpspec/phpspec": "^2.4"
-        },
-        "time": "2016-01-26T13:27:02+00:00",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.1-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Http\\Promise\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Márk Sági-Kazár",
-                "email": "mark.sagikazar@gmail.com"
-            },
-            {
-                "name": "Joel Wurtz",
-                "email": "joel.wurtz@gmail.com"
-            }
-        ],
-        "description": "Promise used for asynchronous HTTP requests",
-        "homepage": "http://httplug.io",
-        "keywords": [
-            "promise"
-        ]
-    },
-    {
-        "name": "php-http/httplug",
-        "version": "v1.1.0",
-        "version_normalized": "1.1.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/php-http/httplug.git",
-            "reference": "1c6381726c18579c4ca2ef1ec1498fdae8bdf018"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/php-http/httplug/zipball/1c6381726c18579c4ca2ef1ec1498fdae8bdf018",
-            "reference": "1c6381726c18579c4ca2ef1ec1498fdae8bdf018",
+            "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+            "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.4",
-            "php-http/promise": "^1.0",
-            "psr/http-message": "^1.0"
-        },
-        "require-dev": {
-            "henrikbjorn/phpspec-code-coverage": "^1.0",
-            "phpspec/phpspec": "^2.4"
+            "php": ">=5.3.0"
         },
-        "time": "2016-08-31T08:30:17+00:00",
+        "time": "2017-02-14T16:28:37+00:00",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.1-dev"
+                "dev-master": "1.0.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "Http\\Client\\": "src/"
+                "Psr\\Container\\": "src/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -449,162 +325,120 @@
         ],
         "authors": [
             {
-                "name": "Eric GELOEN",
-                "email": "geloen.eric@gmail.com"
-            },
-            {
-                "name": "Márk Sági-Kazár",
-                "email": "mark.sagikazar@gmail.com"
+                "name": "PHP-FIG",
+                "homepage": "http://www.php-fig.org/"
             }
         ],
-        "description": "HTTPlug, the HTTP client abstraction for PHP",
-        "homepage": "http://httplug.io",
+        "description": "Common Container Interface (PHP FIG PSR-11)",
+        "homepage": "https://github.com/php-fig/container",
         "keywords": [
-            "client",
-            "http"
+            "PSR-11",
+            "container",
+            "container-interface",
+            "container-interop",
+            "psr"
         ]
     },
     {
-        "name": "php-http/discovery",
-        "version": "1.4.0",
-        "version_normalized": "1.4.0.0",
+        "name": "container-interop/container-interop",
+        "version": "1.2.0",
+        "version_normalized": "1.2.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/php-http/discovery.git",
-            "reference": "9a6cb24de552bfe1aa9d7d1569e2d49c5b169a33"
+            "url": "https://github.com/container-interop/container-interop.git",
+            "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/php-http/discovery/zipball/9a6cb24de552bfe1aa9d7d1569e2d49c5b169a33",
-            "reference": "9a6cb24de552bfe1aa9d7d1569e2d49c5b169a33",
+            "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8",
+            "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8",
             "shasum": ""
         },
         "require": {
-            "php": "^5.5 || ^7.0"
-        },
-        "require-dev": {
-            "henrikbjorn/phpspec-code-coverage": "^2.0.2",
-            "php-http/httplug": "^1.0",
-            "php-http/message-factory": "^1.0",
-            "phpspec/phpspec": "^2.4",
-            "puli/composer-plugin": "1.0.0-beta10"
-        },
-        "suggest": {
-            "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories",
-            "puli/composer-plugin": "Sets up Puli which is recommended for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details."
+            "psr/container": "^1.0"
         },
-        "time": "2018-02-06T10:55:24+00:00",
+        "time": "2017-02-14T19:40:03+00:00",
         "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.3-dev"
-            }
-        },
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "Http\\Discovery\\": "src/"
+                "Interop\\Container\\": "src/Interop/Container/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
             "MIT"
         ],
-        "authors": [
-            {
-                "name": "Márk Sági-Kazár",
-                "email": "mark.sagikazar@gmail.com"
-            }
-        ],
-        "description": "Finds installed HTTPlug implementations and PSR-7 message factories",
-        "homepage": "http://php-http.org",
-        "keywords": [
-            "adapter",
-            "client",
-            "discovery",
-            "factory",
-            "http",
-            "message",
-            "psr7"
-        ]
+        "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
+        "homepage": "https://github.com/container-interop/container-interop"
     },
     {
-        "name": "php-http/curl-client",
-        "version": "v1.7.1",
-        "version_normalized": "1.7.1.0",
+        "name": "nikic/fast-route",
+        "version": "v1.3.0",
+        "version_normalized": "1.3.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/php-http/curl-client.git",
-            "reference": "6341a93d00e5d953fc868a3928b5167e6513f2b6"
+            "url": "https://github.com/nikic/FastRoute.git",
+            "reference": "181d480e08d9476e61381e04a71b34dc0432e812"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/php-http/curl-client/zipball/6341a93d00e5d953fc868a3928b5167e6513f2b6",
-            "reference": "6341a93d00e5d953fc868a3928b5167e6513f2b6",
+            "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812",
+            "reference": "181d480e08d9476e61381e04a71b34dc0432e812",
             "shasum": ""
         },
         "require": {
-            "ext-curl": "*",
-            "php": "^5.5 || ^7.0",
-            "php-http/discovery": "^1.0",
-            "php-http/httplug": "^1.0",
-            "php-http/message": "^1.2",
-            "php-http/message-factory": "^1.0.2"
-        },
-        "provide": {
-            "php-http/async-client-implementation": "1.0",
-            "php-http/client-implementation": "1.0"
+            "php": ">=5.4.0"
         },
         "require-dev": {
-            "guzzlehttp/psr7": "^1.0",
-            "php-http/client-integration-tests": "^0.6",
-            "phpunit/phpunit": "^4.8.27",
-            "zendframework/zend-diactoros": "^1.0"
+            "phpunit/phpunit": "^4.8.35|~5.7"
         },
-        "time": "2018-03-26T19:21:48+00:00",
+        "time": "2018-02-13T20:26:39+00:00",
         "type": "library",
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "Http\\Client\\Curl\\": "src/"
-            }
+                "FastRoute\\": "src/"
+            },
+            "files": [
+                "src/functions.php"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Михаил Красильников",
-                "email": "m.krasilnikov@yandex.ru"
+                "name": "Nikita Popov",
+                "email": "nikic@php.net"
             }
         ],
-        "description": "cURL client for PHP-HTTP",
-        "homepage": "http://php-http.org",
+        "description": "Fast request router for PHP",
         "keywords": [
-            "curl",
-            "http"
+            "router",
+            "routing"
         ]
     },
     {
-        "name": "psr/container",
-        "version": "1.0.0",
-        "version_normalized": "1.0.0.0",
+        "name": "psr/http-message",
+        "version": "1.0.1",
+        "version_normalized": "1.0.1.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/php-fig/container.git",
-            "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+            "url": "https://github.com/php-fig/http-message.git",
+            "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
-            "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+            "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
+            "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.0"
         },
-        "time": "2017-02-14T16:28:37+00:00",
+        "time": "2016-08-06T14:39:51+00:00",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -614,7 +448,7 @@
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "Psr\\Container\\": "src/"
+                "Psr\\Http\\Message\\": "src/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -627,14 +461,15 @@
                 "homepage": "http://www.php-fig.org/"
             }
         ],
-        "description": "Common Container Interface (PHP FIG PSR-11)",
-        "homepage": "https://github.com/php-fig/container",
+        "description": "Common interface for HTTP messages",
+        "homepage": "https://github.com/php-fig/http-message",
         "keywords": [
-            "PSR-11",
-            "container",
-            "container-interface",
-            "container-interop",
-            "psr"
+            "http",
+            "http-message",
+            "psr",
+            "psr-7",
+            "request",
+            "response"
         ]
     },
     {
@@ -690,277 +525,34 @@
         ]
     },
     {
-        "name": "nikic/fast-route",
-        "version": "v1.3.0",
-        "version_normalized": "1.3.0.0",
+        "name": "slim/slim",
+        "version": "3.10.0",
+        "version_normalized": "3.10.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/nikic/FastRoute.git",
-            "reference": "181d480e08d9476e61381e04a71b34dc0432e812"
+            "url": "https://github.com/slimphp/Slim.git",
+            "reference": "d8aabeacc3688b25e2f2dd2db91df91ec6fdd748"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812",
-            "reference": "181d480e08d9476e61381e04a71b34dc0432e812",
+            "url": "https://api.github.com/repos/slimphp/Slim/zipball/d8aabeacc3688b25e2f2dd2db91df91ec6fdd748",
+            "reference": "d8aabeacc3688b25e2f2dd2db91df91ec6fdd748",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.4.0"
+            "container-interop/container-interop": "^1.2",
+            "nikic/fast-route": "^1.0",
+            "php": ">=5.5.0",
+            "pimple/pimple": "^3.0",
+            "psr/container": "^1.0",
+            "psr/http-message": "^1.0"
+        },
+        "provide": {
+            "psr/http-message-implementation": "1.0"
         },
         "require-dev": {
-            "phpunit/phpunit": "^4.8.35|~5.7"
-        },
-        "time": "2018-02-13T20:26:39+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "FastRoute\\": "src/"
-            },
-            "files": [
-                "src/functions.php"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Nikita Popov",
-                "email": "nikic@php.net"
-            }
-        ],
-        "description": "Fast request router for PHP",
-        "keywords": [
-            "router",
-            "routing"
-        ]
-    },
-    {
-        "name": "container-interop/container-interop",
-        "version": "1.2.0",
-        "version_normalized": "1.2.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/container-interop/container-interop.git",
-            "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8",
-            "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8",
-            "shasum": ""
-        },
-        "require": {
-            "psr/container": "^1.0"
-        },
-        "time": "2017-02-14T19:40:03+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Interop\\Container\\": "src/Interop/Container/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
-        "homepage": "https://github.com/container-interop/container-interop"
-    },
-    {
-        "name": "zf1/zend-exception",
-        "version": "1.12.20",
-        "version_normalized": "1.12.20.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/zf1/zend-exception.git",
-            "reference": "ca30959d3e2f522f481a3d1459386acf1aa4ca74"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/zf1/zend-exception/zipball/ca30959d3e2f522f481a3d1459386acf1aa4ca74",
-            "reference": "ca30959d3e2f522f481a3d1459386acf1aa4ca74",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.2.11"
-        },
-        "time": "2015-04-30T11:10:20+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Zend_Exception": "library/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "description": "Zend Framework 1 Exception package",
-        "homepage": "http://framework.zend.com/",
-        "keywords": [
-            "ZF1",
-            "exception",
-            "framework",
-            "zend"
-        ]
-    },
-    {
-        "name": "zf1/zend-xml",
-        "version": "1.12.20",
-        "version_normalized": "1.12.20.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/zf1/zend-xml.git",
-            "reference": "d4f99144a0cf0c5e383f3fb765cdd7dfde7caab4"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/zf1/zend-xml/zipball/d4f99144a0cf0c5e383f3fb765cdd7dfde7caab4",
-            "reference": "d4f99144a0cf0c5e383f3fb765cdd7dfde7caab4",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.2.11",
-            "zf1/zend-exception": "self.version"
-        },
-        "time": "2017-07-11T23:59:06+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Zend_Xml": "library/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "description": "Zend Framework 1 Xml package",
-        "homepage": "http://framework.zend.com/",
-        "keywords": [
-            "ZF1",
-            "framework",
-            "xml",
-            "zend"
-        ]
-    },
-    {
-        "name": "zf1/zend-search",
-        "version": "1.12.20",
-        "version_normalized": "1.12.20.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/zf1/zend-search.git",
-            "reference": "c966e380667e02f83bf0806132e9cf392831930b"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/zf1/zend-search/zipball/c966e380667e02f83bf0806132e9cf392831930b",
-            "reference": "c966e380667e02f83bf0806132e9cf392831930b",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.2.11",
-            "zf1/zend-exception": "self.version"
-        },
-        "time": "2015-04-30T11:08:53+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Zend_Search": "library/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "description": "Zend Framework 1 Search package",
-        "homepage": "http://framework.zend.com/",
-        "keywords": [
-            "ZF1",
-            "framework",
-            "search",
-            "zend"
-        ]
-    },
-    {
-        "name": "zf1/zend-search-lucene",
-        "version": "1.12.20",
-        "version_normalized": "1.12.20.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/zf1/zend-search-lucene.git",
-            "reference": "8a07584308d86c86fdd9f743d574cc2cbfffc7ac"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/zf1/zend-search-lucene/zipball/8a07584308d86c86fdd9f743d574cc2cbfffc7ac",
-            "reference": "8a07584308d86c86fdd9f743d574cc2cbfffc7ac",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.2.11",
-            "zf1/zend-exception": "self.version",
-            "zf1/zend-search": "self.version",
-            "zf1/zend-xml": "self.version"
-        },
-        "time": "2017-07-12T00:31:21+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Zend_Search_Lucene": "library/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "description": "Zend Framework 1 Search Lucene package",
-        "homepage": "http://framework.zend.com/",
-        "keywords": [
-            "ZF1",
-            "framework",
-            "lucene",
-            "search",
-            "zend"
-        ]
-    },
-    {
-        "name": "slim/slim",
-        "version": "3.10.0",
-        "version_normalized": "3.10.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/slimphp/Slim.git",
-            "reference": "d8aabeacc3688b25e2f2dd2db91df91ec6fdd748"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/slimphp/Slim/zipball/d8aabeacc3688b25e2f2dd2db91df91ec6fdd748",
-            "reference": "d8aabeacc3688b25e2f2dd2db91df91ec6fdd748",
-            "shasum": ""
-        },
-        "require": {
-            "container-interop/container-interop": "^1.2",
-            "nikic/fast-route": "^1.0",
-            "php": ">=5.5.0",
-            "pimple/pimple": "^3.0",
-            "psr/container": "^1.0",
-            "psr/http-message": "^1.0"
-        },
-        "provide": {
-            "psr/http-message-implementation": "1.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "^4.0",
-            "squizlabs/php_codesniffer": "^2.5"
+            "phpunit/phpunit": "^4.0",
+            "squizlabs/php_codesniffer": "^2.5"
         },
         "time": "2018-04-19T19:29:08+00:00",
         "type": "library",
@@ -1067,86 +659,110 @@
         ]
     },
     {
-        "name": "psr/http-client",
-        "version": "0.1.0",
-        "version_normalized": "0.1.0.0",
+        "name": "respect/validation",
+        "version": "1.1.19",
+        "version_normalized": "1.1.19.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/php-fig/http-client.git",
-            "reference": "d4d3ec04b034120b0591ad9722a4c2be33a7dfec"
-        },
+            "url": "https://github.com/Respect/Validation.git",
+            "reference": "667ed36b4868e785d52d815181ff00c798a61be7"
+        },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/php-fig/http-client/zipball/d4d3ec04b034120b0591ad9722a4c2be33a7dfec",
-            "reference": "d4d3ec04b034120b0591ad9722a4c2be33a7dfec",
+            "url": "https://api.github.com/repos/Respect/Validation/zipball/667ed36b4868e785d52d815181ff00c798a61be7",
+            "reference": "667ed36b4868e785d52d815181ff00c798a61be7",
             "shasum": ""
         },
         "require": {
-            "php": "^7.0",
-            "psr/http-message": "^1.0"
+            "php": ">=5.4",
+            "symfony/polyfill-mbstring": "^1.2"
+        },
+        "require-dev": {
+            "egulias/email-validator": "~1.2",
+            "mikey179/vfsstream": "^1.5",
+            "phpunit/phpunit": "~4.0",
+            "symfony/validator": "~2.6.9",
+            "zendframework/zend-validator": "~2.3"
+        },
+        "suggest": {
+            "egulias/email-validator": "Strict (RFC compliant) email validation",
+            "ext-bcmath": "Arbitrary Precision Mathematics",
+            "ext-mbstring": "Multibyte String Functions",
+            "friendsofphp/php-cs-fixer": "Fix PSR2 and other coding style issues",
+            "symfony/validator": "Use Symfony validator through Respect\\Validation",
+            "zendframework/zend-validator": "Use Zend Framework validator through Respect\\Validation"
         },
-        "time": "2018-02-03T12:55:20+00:00",
+        "time": "2018-07-02T06:22:41+00:00",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.0.x-dev"
+                "dev-master": "1.1-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "Psr\\Http\\Client\\": "src/"
+                "Respect\\Validation\\": "library/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "BSD Style"
         ],
         "authors": [
             {
-                "name": "PHP-FIG",
-                "homepage": "http://www.php-fig.org/"
+                "name": "Respect/Validation Contributors",
+                "homepage": "https://github.com/Respect/Validation/graphs/contributors"
             }
         ],
-        "description": "Common interface for HTTP clients",
-        "homepage": "https://github.com/php-fig/http-client",
+        "description": "The most awesome validation engine ever created for PHP",
+        "homepage": "http://respect.github.io/Validation/",
         "keywords": [
-            "http",
-            "http-client",
-            "psr",
-            "psr-18"
+            "respect",
+            "validation",
+            "validator"
         ]
     },
     {
-        "name": "http-interop/http-factory",
-        "version": "0.3.0",
-        "version_normalized": "0.3.0.0",
+        "name": "php-http/discovery",
+        "version": "1.4.0",
+        "version_normalized": "1.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/http-interop/http-factory.git",
-            "reference": "c2587cc0a6f74987fefb5b8074acfd32c69a4b0f"
+            "url": "https://github.com/php-http/discovery.git",
+            "reference": "9a6cb24de552bfe1aa9d7d1569e2d49c5b169a33"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/http-interop/http-factory/zipball/c2587cc0a6f74987fefb5b8074acfd32c69a4b0f",
-            "reference": "c2587cc0a6f74987fefb5b8074acfd32c69a4b0f",
+            "url": "https://api.github.com/repos/php-http/discovery/zipball/9a6cb24de552bfe1aa9d7d1569e2d49c5b169a33",
+            "reference": "9a6cb24de552bfe1aa9d7d1569e2d49c5b169a33",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.0",
-            "psr/http-message": "^1.0"
+            "php": "^5.5 || ^7.0"
+        },
+        "require-dev": {
+            "henrikbjorn/phpspec-code-coverage": "^2.0.2",
+            "php-http/httplug": "^1.0",
+            "php-http/message-factory": "^1.0",
+            "phpspec/phpspec": "^2.4",
+            "puli/composer-plugin": "1.0.0-beta10"
+        },
+        "suggest": {
+            "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories",
+            "puli/composer-plugin": "Sets up Puli which is recommended for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details."
         },
-        "time": "2017-03-24T14:48:51+00:00",
+        "time": "2018-02-06T10:55:24+00:00",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.0.x-dev"
+                "dev-master": "1.3-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "Interop\\Http\\Factory\\": "src/"
+                "Http\\Discovery\\": "src/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1155,59 +771,53 @@
         ],
         "authors": [
             {
-                "name": "PHP-FIG",
-                "homepage": "http://www.php-fig.org/"
+                "name": "Márk Sági-Kazár",
+                "email": "mark.sagikazar@gmail.com"
             }
         ],
-        "description": "Common interface for HTTP message factories",
+        "description": "Finds installed HTTPlug implementations and PSR-7 message factories",
+        "homepage": "http://php-http.org",
         "keywords": [
+            "adapter",
+            "client",
+            "discovery",
             "factory",
             "http",
             "message",
-            "psr",
-            "psr-17",
-            "psr-7",
-            "request",
-            "response"
+            "psr7"
         ]
     },
     {
-        "name": "nyholm/psr7",
-        "version": "0.3.0",
-        "version_normalized": "0.3.0.0",
+        "name": "clue/stream-filter",
+        "version": "v1.4.0",
+        "version_normalized": "1.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/Nyholm/psr7.git",
-            "reference": "ec2c453decfc5f8ee5a8cf43694b8ca392503d32"
+            "url": "https://github.com/clue/php-stream-filter.git",
+            "reference": "d80fdee9b3a7e0d16fc330a22f41f3ad0eeb09d0"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/Nyholm/psr7/zipball/ec2c453decfc5f8ee5a8cf43694b8ca392503d32",
-            "reference": "ec2c453decfc5f8ee5a8cf43694b8ca392503d32",
+            "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/d80fdee9b3a7e0d16fc330a22f41f3ad0eeb09d0",
+            "reference": "d80fdee9b3a7e0d16fc330a22f41f3ad0eeb09d0",
             "shasum": ""
         },
         "require": {
-            "http-interop/http-factory": "^0.3",
-            "php": "^7.1",
-            "php-http/message-factory": "^1.0",
-            "psr/http-message": "^1.0"
-        },
-        "provide": {
-            "psr/http-factory-implementation": "1.0",
-            "psr/http-message-implementation": "1.0"
+            "php": ">=5.3"
         },
         "require-dev": {
-            "http-interop/http-factory-tests": "dev-master",
-            "php-http/psr7-integration-tests": "dev-master",
-            "phpunit/phpunit": "^7.0"
+            "phpunit/phpunit": "^5.0 || ^4.8"
         },
-        "time": "2018-02-06T12:01:53+00:00",
+        "time": "2017-08-18T09:54:01+00:00",
         "type": "library",
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "Nyholm\\Psr7\\": "src/"
-            }
+                "Clue\\StreamFilter\\": "src/"
+            },
+            "files": [
+                "src/functions.php"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
@@ -1215,59 +825,52 @@
         ],
         "authors": [
             {
-                "name": "Tobias Nyholm",
-                "email": "tobias.nyholm@gmail.com"
+                "name": "Christian Lück",
+                "email": "christian@lueck.tv"
             }
         ],
-        "description": "A fast PHP7 implementation of PSR-7",
-        "homepage": "http://tnyholm.se",
+        "description": "A simple and modern approach to stream filtering in PHP",
+        "homepage": "https://github.com/clue/php-stream-filter",
         "keywords": [
-            "psr-17",
-            "psr-7"
+            "bucket brigade",
+            "callback",
+            "filter",
+            "php_user_filter",
+            "stream",
+            "stream_filter_append",
+            "stream_filter_register"
         ]
     },
     {
-        "name": "kriswallsmith/buzz",
-        "version": "v0.17.1",
-        "version_normalized": "0.17.1.0",
+        "name": "php-http/message-factory",
+        "version": "v1.0.2",
+        "version_normalized": "1.0.2.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/kriswallsmith/Buzz.git",
-            "reference": "00d4b3022f1c519b295a4ca0f46e1b91ff3d65f3"
+            "url": "https://github.com/php-http/message-factory.git",
+            "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/kriswallsmith/Buzz/zipball/00d4b3022f1c519b295a4ca0f46e1b91ff3d65f3",
-            "reference": "00d4b3022f1c519b295a4ca0f46e1b91ff3d65f3",
+            "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1",
+            "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1",
             "shasum": ""
         },
         "require": {
-            "nyholm/psr7": "^0.3",
-            "php": "^7.1",
-            "php-http/httplug": "^1.1",
-            "psr/http-client": "^0.1",
-            "psr/http-message": "^1.0",
-            "symfony/options-resolver": "^3.4 || ^4.0"
-        },
-        "provide": {
-            "php-http/client-implementation": "1.0"
-        },
-        "require-dev": {
-            "friendsofphp/php-cs-fixer": "^2.11",
-            "php-http/client-integration-tests": "^0.6.2",
-            "phpunit/phpunit": "^6.5.7",
-            "psr/log": "^1.0",
-            "symfony/phpunit-bridge": "^4.0"
-        },
-        "suggest": {
-            "ext-curl": "*"
+            "php": ">=5.4",
+            "psr/http-message": "^1.0"
         },
-        "time": "2018-04-05T08:07:12+00:00",
+        "time": "2015-12-19T14:08:53+00:00",
         "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "1.0-dev"
+            }
+        },
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "Buzz\\": "lib"
+                "Http\\Message\\": "src/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1276,123 +879,124 @@
         ],
         "authors": [
             {
-                "name": "Kris Wallsmith",
-                "email": "kris.wallsmith@gmail.com",
-                "homepage": "http://kriswallsmith.net/"
-            },
-            {
-                "name": "Tobias Nyholm",
-                "email": "tobias.nyholm@gmail.com",
-                "homepage": "http://tnyholm.se/"
+                "name": "Márk Sági-Kazár",
+                "email": "mark.sagikazar@gmail.com"
             }
         ],
-        "description": "Lightweight HTTP client",
-        "homepage": "https://github.com/kriswallsmith/Buzz",
+        "description": "Factory interfaces for PSR-7 HTTP Message",
+        "homepage": "http://php-http.org",
         "keywords": [
-            "curl",
-            "http client"
+            "factory",
+            "http",
+            "message",
+            "stream",
+            "uri"
         ]
     },
     {
-        "name": "respect/validation",
-        "version": "1.1.19",
-        "version_normalized": "1.1.19.0",
+        "name": "php-http/message",
+        "version": "1.6.0",
+        "version_normalized": "1.6.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/Respect/Validation.git",
-            "reference": "667ed36b4868e785d52d815181ff00c798a61be7"
+            "url": "https://github.com/php-http/message.git",
+            "reference": "2edd63bae5f52f79363c5f18904b05ce3a4b7253"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/Respect/Validation/zipball/667ed36b4868e785d52d815181ff00c798a61be7",
-            "reference": "667ed36b4868e785d52d815181ff00c798a61be7",
+            "url": "https://api.github.com/repos/php-http/message/zipball/2edd63bae5f52f79363c5f18904b05ce3a4b7253",
+            "reference": "2edd63bae5f52f79363c5f18904b05ce3a4b7253",
             "shasum": ""
         },
         "require": {
+            "clue/stream-filter": "^1.3",
             "php": ">=5.4",
-            "symfony/polyfill-mbstring": "^1.2"
+            "php-http/message-factory": "^1.0.2",
+            "psr/http-message": "^1.0"
+        },
+        "provide": {
+            "php-http/message-factory-implementation": "1.0"
         },
         "require-dev": {
-            "egulias/email-validator": "~1.2",
-            "mikey179/vfsstream": "^1.5",
-            "phpunit/phpunit": "~4.0",
-            "symfony/validator": "~2.6.9",
-            "zendframework/zend-validator": "~2.3"
+            "akeneo/phpspec-skip-example-extension": "^1.0",
+            "coduo/phpspec-data-provider-extension": "^1.0",
+            "ext-zlib": "*",
+            "guzzlehttp/psr7": "^1.0",
+            "henrikbjorn/phpspec-code-coverage": "^1.0",
+            "phpspec/phpspec": "^2.4",
+            "slim/slim": "^3.0",
+            "zendframework/zend-diactoros": "^1.0"
         },
         "suggest": {
-            "egulias/email-validator": "Strict (RFC compliant) email validation",
-            "ext-bcmath": "Arbitrary Precision Mathematics",
-            "ext-mbstring": "Multibyte String Functions",
-            "friendsofphp/php-cs-fixer": "Fix PSR2 and other coding style issues",
-            "symfony/validator": "Use Symfony validator through Respect\\Validation",
-            "zendframework/zend-validator": "Use Zend Framework validator through Respect\\Validation"
+            "ext-zlib": "Used with compressor/decompressor streams",
+            "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
+            "slim/slim": "Used with Slim Framework PSR-7 implementation",
+            "zendframework/zend-diactoros": "Used with Diactoros Factories"
         },
-        "time": "2018-07-02T06:22:41+00:00",
+        "time": "2017-07-05T06:40:53+00:00",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.1-dev"
+                "dev-master": "1.6-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "Respect\\Validation\\": "library/"
-            }
+                "Http\\Message\\": "src/"
+            },
+            "files": [
+                "src/filters.php"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "BSD Style"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Respect/Validation Contributors",
-                "homepage": "https://github.com/Respect/Validation/graphs/contributors"
+                "name": "Márk Sági-Kazár",
+                "email": "mark.sagikazar@gmail.com"
             }
         ],
-        "description": "The most awesome validation engine ever created for PHP",
-        "homepage": "http://respect.github.io/Validation/",
+        "description": "HTTP Message related tools",
+        "homepage": "http://php-http.org",
         "keywords": [
-            "respect",
-            "validation",
-            "validator"
+            "http",
+            "message",
+            "psr-7"
         ]
     },
     {
-        "name": "setasign/fpdi",
-        "version": "v2.0.3",
-        "version_normalized": "2.0.3.0",
+        "name": "php-http/promise",
+        "version": "v1.0.0",
+        "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/Setasign/FPDI.git",
-            "reference": "5998a2f81ae5b4a59eb75ed65e6ec0518163de8d"
+            "url": "https://github.com/php-http/promise.git",
+            "reference": "dc494cdc9d7160b9a09bd5573272195242ce7980"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/Setasign/FPDI/zipball/5998a2f81ae5b4a59eb75ed65e6ec0518163de8d",
-            "reference": "5998a2f81ae5b4a59eb75ed65e6ec0518163de8d",
+            "url": "https://api.github.com/repos/php-http/promise/zipball/dc494cdc9d7160b9a09bd5573272195242ce7980",
+            "reference": "dc494cdc9d7160b9a09bd5573272195242ce7980",
             "shasum": ""
         },
-        "require": {
-            "ext-zlib": "*",
-            "php": "^5.6 || ^7.0"
-        },
         "require-dev": {
-            "phpunit/phpunit": "~5.7",
-            "setasign/fpdf": "~1.8",
-            "tecnickcom/tcpdf": "~6.2"
-        },
-        "suggest": {
-            "setasign/fpdf": "FPDI will extend this class but as it is also possible to use \"tecnickcom/tcpdf\" as an alternative there's no fixed dependency configured.",
-            "setasign/fpdi-fpdf": "Use this package to automatically evaluate dependencies to FPDF.",
-            "setasign/fpdi-tcpdf": "Use this package to automatically evaluate dependencies to TCPDF."
+            "henrikbjorn/phpspec-code-coverage": "^1.0",
+            "phpspec/phpspec": "^2.4"
         },
-        "time": "2018-04-18T13:00:41+00:00",
+        "time": "2016-01-26T13:27:02+00:00",
         "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "1.1-dev"
+            }
+        },
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "setasign\\Fpdi\\": "src/"
+                "Http\\Promise\\": "src/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1401,57 +1005,56 @@
         ],
         "authors": [
             {
-                "name": "Jan Slabon",
-                "email": "jan.slabon@setasign.com",
-                "homepage": "https://www.setasign.com"
+                "name": "Márk Sági-Kazár",
+                "email": "mark.sagikazar@gmail.com"
             },
             {
-                "name": "Maximilian Kresse",
-                "email": "maximilian.kresse@setasign.com",
-                "homepage": "https://www.setasign.com"
+                "name": "Joel Wurtz",
+                "email": "joel.wurtz@gmail.com"
             }
         ],
-        "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.",
-        "homepage": "https://www.setasign.com/fpdi",
+        "description": "Promise used for asynchronous HTTP requests",
+        "homepage": "http://httplug.io",
         "keywords": [
-            "fpdf",
-            "fpdi",
-            "pdf"
+            "promise"
         ]
     },
     {
-        "name": "symfony/options-resolver",
-        "version": "v4.1.2",
-        "version_normalized": "4.1.2.0",
+        "name": "php-http/httplug",
+        "version": "v1.1.0",
+        "version_normalized": "1.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/options-resolver.git",
-            "reference": "0aec9f9c5d2447ae7ea5ea31bc82f1d43f9a8a56"
+            "url": "https://github.com/php-http/httplug.git",
+            "reference": "1c6381726c18579c4ca2ef1ec1498fdae8bdf018"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/options-resolver/zipball/0aec9f9c5d2447ae7ea5ea31bc82f1d43f9a8a56",
-            "reference": "0aec9f9c5d2447ae7ea5ea31bc82f1d43f9a8a56",
+            "url": "https://api.github.com/repos/php-http/httplug/zipball/1c6381726c18579c4ca2ef1ec1498fdae8bdf018",
+            "reference": "1c6381726c18579c4ca2ef1ec1498fdae8bdf018",
             "shasum": ""
         },
         "require": {
-            "php": "^7.1.3"
+            "php": ">=5.4",
+            "php-http/promise": "^1.0",
+            "psr/http-message": "^1.0"
         },
-        "time": "2018-07-07T16:00:36+00:00",
+        "require-dev": {
+            "henrikbjorn/phpspec-code-coverage": "^1.0",
+            "phpspec/phpspec": "^2.4"
+        },
+        "time": "2016-08-31T08:30:17+00:00",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "4.1-dev"
+                "dev-master": "1.1-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
-                "Symfony\\Component\\OptionsResolver\\": ""
-            },
-            "exclude-from-classmap": [
-                "/Tests/"
-            ]
+                "Http\\Client\\": "src/"
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
@@ -1459,317 +1062,239 @@
         ],
         "authors": [
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Eric GELOEN",
+                "email": "geloen.eric@gmail.com"
             },
             {
-                "name": "Symfony Community",
-                "homepage": "https://symfony.com/contributors"
+                "name": "Márk Sági-Kazár",
+                "email": "mark.sagikazar@gmail.com"
             }
         ],
-        "description": "Symfony OptionsResolver Component",
-        "homepage": "https://symfony.com",
+        "description": "HTTPlug, the HTTP client abstraction for PHP",
+        "homepage": "http://httplug.io",
         "keywords": [
-            "config",
-            "configuration",
-            "options"
+            "client",
+            "http"
         ]
     },
     {
-        "name": "tecnickcom/tcpdf",
-        "version": "6.2.17",
-        "version_normalized": "6.2.17.0",
+        "name": "php-http/curl-client",
+        "version": "v1.7.1",
+        "version_normalized": "1.7.1.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/tecnickcom/TCPDF.git",
-            "reference": "64fc19439863e1b1314487a72a74d9bfd0b55a53"
+            "url": "https://github.com/php-http/curl-client.git",
+            "reference": "6341a93d00e5d953fc868a3928b5167e6513f2b6"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/64fc19439863e1b1314487a72a74d9bfd0b55a53",
-            "reference": "64fc19439863e1b1314487a72a74d9bfd0b55a53",
+            "url": "https://api.github.com/repos/php-http/curl-client/zipball/6341a93d00e5d953fc868a3928b5167e6513f2b6",
+            "reference": "6341a93d00e5d953fc868a3928b5167e6513f2b6",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.0"
+            "ext-curl": "*",
+            "php": "^5.5 || ^7.0",
+            "php-http/discovery": "^1.0",
+            "php-http/httplug": "^1.0",
+            "php-http/message": "^1.2",
+            "php-http/message-factory": "^1.0.2"
         },
-        "time": "2018-02-24T11:48:20+00:00",
+        "provide": {
+            "php-http/async-client-implementation": "1.0",
+            "php-http/client-implementation": "1.0"
+        },
+        "require-dev": {
+            "guzzlehttp/psr7": "^1.0",
+            "php-http/client-integration-tests": "^0.6",
+            "phpunit/phpunit": "^4.8.27",
+            "zendframework/zend-diactoros": "^1.0"
+        },
+        "time": "2018-03-26T19:21:48+00:00",
         "type": "library",
         "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "config",
-                "include",
-                "tcpdf.php",
-                "tcpdf_parser.php",
-                "tcpdf_import.php",
-                "tcpdf_barcodes_1d.php",
-                "tcpdf_barcodes_2d.php",
-                "include/tcpdf_colors.php",
-                "include/tcpdf_filters.php",
-                "include/tcpdf_font_data.php",
-                "include/tcpdf_fonts.php",
-                "include/tcpdf_images.php",
-                "include/tcpdf_static.php",
-                "include/barcodes/datamatrix.php",
-                "include/barcodes/pdf417.php",
-                "include/barcodes/qrcode.php"
-            ]
+            "psr-4": {
+                "Http\\Client\\Curl\\": "src/"
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "LGPL-3.0"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Nicola Asuni",
-                "email": "info@tecnick.com",
-                "role": "lead"
+                "name": "Михаил Красильников",
+                "email": "m.krasilnikov@yandex.ru"
             }
         ],
-        "description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
-        "homepage": "http://www.tcpdf.org/",
+        "description": "cURL client for PHP-HTTP",
+        "homepage": "http://php-http.org",
         "keywords": [
-            "PDFD32000-2008",
-            "TCPDF",
-            "barcodes",
-            "datamatrix",
-            "pdf",
-            "pdf417",
-            "qrcode"
+            "curl",
+            "http"
         ]
     },
     {
-        "name": "setasign/fpdi-tcpdf",
-        "version": "v2.0.0",
-        "version_normalized": "2.0.0.0",
+        "name": "zf1/zend-exception",
+        "version": "1.12.20",
+        "version_normalized": "1.12.20.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/Setasign/FPDI-TCPDF.git",
-            "reference": "326df0f31ef0fab8f1e6559833b21a6275ae15bc"
+            "url": "https://github.com/zf1/zend-exception.git",
+            "reference": "ca30959d3e2f522f481a3d1459386acf1aa4ca74"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/Setasign/FPDI-TCPDF/zipball/326df0f31ef0fab8f1e6559833b21a6275ae15bc",
-            "reference": "326df0f31ef0fab8f1e6559833b21a6275ae15bc",
+            "url": "https://api.github.com/repos/zf1/zend-exception/zipball/ca30959d3e2f522f481a3d1459386acf1aa4ca74",
+            "reference": "ca30959d3e2f522f481a3d1459386acf1aa4ca74",
             "shasum": ""
         },
         "require": {
-            "setasign/fpdi": "^2.0",
-            "tecnickcom/tcpdf": "^6.2"
+            "php": ">=5.2.11"
         },
-        "time": "2017-10-12T14:31:02+00:00",
+        "time": "2015-04-30T11:10:20+00:00",
         "type": "library",
         "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Zend_Exception": "library/"
+            }
+        },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Jan Slabon",
-                "email": "jan.slabon@setasign.com",
-                "homepage": "https://www.setasign.com"
-            }
+            "BSD-3-Clause"
         ],
-        "description": "Kind of metadata package for dependencies of the latest versions of FPDI and TCPDF.",
-        "homepage": "https://www.setasign.com/fpdi",
+        "description": "Zend Framework 1 Exception package",
+        "homepage": "http://framework.zend.com/",
         "keywords": [
-            "TCPDF",
-            "fpdi",
-            "pdf"
+            "ZF1",
+            "exception",
+            "framework",
+            "zend"
         ]
     },
     {
-        "name": "php-http/multipart-stream-builder",
-        "version": "1.0.0",
-        "version_normalized": "1.0.0.0",
+        "name": "zf1/zend-xml",
+        "version": "1.12.20",
+        "version_normalized": "1.12.20.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/php-http/multipart-stream-builder.git",
-            "reference": "1fa3c623fc813a43b39494b2a1612174e36e0fb0"
+            "url": "https://github.com/zf1/zend-xml.git",
+            "reference": "d4f99144a0cf0c5e383f3fb765cdd7dfde7caab4"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/1fa3c623fc813a43b39494b2a1612174e36e0fb0",
-            "reference": "1fa3c623fc813a43b39494b2a1612174e36e0fb0",
+            "url": "https://api.github.com/repos/zf1/zend-xml/zipball/d4f99144a0cf0c5e383f3fb765cdd7dfde7caab4",
+            "reference": "d4f99144a0cf0c5e383f3fb765cdd7dfde7caab4",
             "shasum": ""
         },
         "require": {
-            "php": "^5.5 || ^7.0",
-            "php-http/discovery": "^1.0",
-            "php-http/message-factory": "^1.0.2",
-            "psr/http-message": "^1.0"
-        },
-        "require-dev": {
-            "php-http/message": "^1.5",
-            "phpunit/phpunit": "^4.8 || ^5.4",
-            "zendframework/zend-diactoros": "^1.3.5"
+            "php": ">=5.2.11",
+            "zf1/zend-exception": "self.version"
         },
-        "time": "2017-05-21T17:45:25+00:00",
+        "time": "2017-07-11T23:59:06+00:00",
         "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "0.3-dev"
-            }
-        },
         "installation-source": "dist",
         "autoload": {
-            "psr-4": {
-                "Http\\Message\\MultipartStream\\": "src/"
+            "psr-0": {
+                "Zend_Xml": "library/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Tobias Nyholm",
-                "email": "tobias.nyholm@gmail.com"
-            }
+            "BSD-3-Clause"
         ],
-        "description": "A builder class that help you create a multipart stream",
-        "homepage": "http://php-http.org",
+        "description": "Zend Framework 1 Xml package",
+        "homepage": "http://framework.zend.com/",
         "keywords": [
-            "factory",
-            "http",
-            "message",
-            "multipart stream",
-            "stream"
+            "ZF1",
+            "framework",
+            "xml",
+            "zend"
         ]
     },
     {
-        "name": "php-http/client-common",
-        "version": "1.7.0",
-        "version_normalized": "1.7.0.0",
+        "name": "zf1/zend-search",
+        "version": "1.12.20",
+        "version_normalized": "1.12.20.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/php-http/client-common.git",
-            "reference": "9accb4a082eb06403747c0ffd444112eda41a0fd"
+            "url": "https://github.com/zf1/zend-search.git",
+            "reference": "c966e380667e02f83bf0806132e9cf392831930b"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/php-http/client-common/zipball/9accb4a082eb06403747c0ffd444112eda41a0fd",
-            "reference": "9accb4a082eb06403747c0ffd444112eda41a0fd",
+            "url": "https://api.github.com/repos/zf1/zend-search/zipball/c966e380667e02f83bf0806132e9cf392831930b",
+            "reference": "c966e380667e02f83bf0806132e9cf392831930b",
             "shasum": ""
         },
         "require": {
-            "php": "^5.4 || ^7.0",
-            "php-http/httplug": "^1.1",
-            "php-http/message": "^1.6",
-            "php-http/message-factory": "^1.0",
-            "symfony/options-resolver": "^2.6 || ^3.0 || ^4.0"
-        },
-        "require-dev": {
-            "guzzlehttp/psr7": "^1.4",
-            "phpspec/phpspec": "^2.5 || ^3.4 || ^4.2"
-        },
-        "suggest": {
-            "php-http/cache-plugin": "PSR-6 Cache plugin",
-            "php-http/logger-plugin": "PSR-3 Logger plugin",
-            "php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
+            "php": ">=5.2.11",
+            "zf1/zend-exception": "self.version"
         },
-        "time": "2017-11-30T11:06:59+00:00",
+        "time": "2015-04-30T11:08:53+00:00",
         "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.7-dev"
-            }
-        },
         "installation-source": "dist",
         "autoload": {
-            "psr-4": {
-                "Http\\Client\\Common\\": "src/"
+            "psr-0": {
+                "Zend_Search": "library/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Márk Sági-Kazár",
-                "email": "mark.sagikazar@gmail.com"
-            }
+            "BSD-3-Clause"
         ],
-        "description": "Common HTTP Client implementations and tools for HTTPlug",
-        "homepage": "http://httplug.io",
+        "description": "Zend Framework 1 Search package",
+        "homepage": "http://framework.zend.com/",
         "keywords": [
-            "client",
-            "common",
-            "http",
-            "httplug"
+            "ZF1",
+            "framework",
+            "search",
+            "zend"
         ]
     },
     {
-        "name": "m4tthumphrey/php-gitlab-api",
-        "version": "9.10.0",
-        "version_normalized": "9.10.0.0",
+        "name": "zf1/zend-search-lucene",
+        "version": "1.12.20",
+        "version_normalized": "1.12.20.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/m4tthumphrey/php-gitlab-api.git",
-            "reference": "c946569ae75eff6317a5691ab590b6eb071bdb26"
+            "url": "https://github.com/zf1/zend-search-lucene.git",
+            "reference": "8a07584308d86c86fdd9f743d574cc2cbfffc7ac"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/m4tthumphrey/php-gitlab-api/zipball/c946569ae75eff6317a5691ab590b6eb071bdb26",
-            "reference": "c946569ae75eff6317a5691ab590b6eb071bdb26",
+            "url": "https://api.github.com/repos/zf1/zend-search-lucene/zipball/8a07584308d86c86fdd9f743d574cc2cbfffc7ac",
+            "reference": "8a07584308d86c86fdd9f743d574cc2cbfffc7ac",
             "shasum": ""
         },
         "require": {
-            "ext-xml": "*",
-            "php": "^5.6 || ^7.0",
-            "php-http/client-common": "^1.6",
-            "php-http/client-implementation": "^1.0",
-            "php-http/discovery": "^1.2",
-            "php-http/httplug": "^1.1",
-            "php-http/multipart-stream-builder": "^1.0",
-            "symfony/options-resolver": "^2.6 || ^3.0 || ^4.0"
-        },
-        "require-dev": {
-            "guzzlehttp/psr7": "^1.2",
-            "php-http/guzzle6-adapter": "^1.0",
-            "php-http/mock-client": "^1.0",
-            "phpunit/phpunit": "^5.0"
+            "php": ">=5.2.11",
+            "zf1/zend-exception": "self.version",
+            "zf1/zend-search": "self.version",
+            "zf1/zend-xml": "self.version"
         },
-        "time": "2018-06-15T13:59:39+00:00",
+        "time": "2017-07-12T00:31:21+00:00",
         "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "9.8.x-dev"
-            }
-        },
         "installation-source": "dist",
         "autoload": {
-            "psr-4": {
-                "Gitlab\\": "lib/Gitlab/"
+            "psr-0": {
+                "Zend_Search_Lucene": "library/"
             }
         },
         "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"
-            }
+            "BSD-3-Clause"
         ],
-        "description": "GitLab API client",
-        "homepage": "https://github.com/m4tthumphrey/php-gitlab-api",
+        "description": "Zend Framework 1 Search Lucene package",
+        "homepage": "http://framework.zend.com/",
         "keywords": [
-            "api",
-            "gitlab"
+            "ZF1",
+            "framework",
+            "lucene",
+            "search",
+            "zend"
         ]
     },
     {
@@ -2020,5 +1545,253 @@
             "Guzzle",
             "http"
         ]
+    },
+    {
+        "name": "php-http/multipart-stream-builder",
+        "version": "1.0.0",
+        "version_normalized": "1.0.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/php-http/multipart-stream-builder.git",
+            "reference": "1fa3c623fc813a43b39494b2a1612174e36e0fb0"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/1fa3c623fc813a43b39494b2a1612174e36e0fb0",
+            "reference": "1fa3c623fc813a43b39494b2a1612174e36e0fb0",
+            "shasum": ""
+        },
+        "require": {
+            "php": "^5.5 || ^7.0",
+            "php-http/discovery": "^1.0",
+            "php-http/message-factory": "^1.0.2",
+            "psr/http-message": "^1.0"
+        },
+        "require-dev": {
+            "php-http/message": "^1.5",
+            "phpunit/phpunit": "^4.8 || ^5.4",
+            "zendframework/zend-diactoros": "^1.3.5"
+        },
+        "time": "2017-05-21T17:45:25+00:00",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "0.3-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "Http\\Message\\MultipartStream\\": "src/"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Tobias Nyholm",
+                "email": "tobias.nyholm@gmail.com"
+            }
+        ],
+        "description": "A builder class that help you create a multipart stream",
+        "homepage": "http://php-http.org",
+        "keywords": [
+            "factory",
+            "http",
+            "message",
+            "multipart stream",
+            "stream"
+        ]
+    },
+    {
+        "name": "php-http/client-common",
+        "version": "1.7.0",
+        "version_normalized": "1.7.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/php-http/client-common.git",
+            "reference": "9accb4a082eb06403747c0ffd444112eda41a0fd"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/php-http/client-common/zipball/9accb4a082eb06403747c0ffd444112eda41a0fd",
+            "reference": "9accb4a082eb06403747c0ffd444112eda41a0fd",
+            "shasum": ""
+        },
+        "require": {
+            "php": "^5.4 || ^7.0",
+            "php-http/httplug": "^1.1",
+            "php-http/message": "^1.6",
+            "php-http/message-factory": "^1.0",
+            "symfony/options-resolver": "^2.6 || ^3.0 || ^4.0"
+        },
+        "require-dev": {
+            "guzzlehttp/psr7": "^1.4",
+            "phpspec/phpspec": "^2.5 || ^3.4 || ^4.2"
+        },
+        "suggest": {
+            "php-http/cache-plugin": "PSR-6 Cache plugin",
+            "php-http/logger-plugin": "PSR-3 Logger plugin",
+            "php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
+        },
+        "time": "2017-11-30T11:06:59+00:00",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "1.7-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "Http\\Client\\Common\\": "src/"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Márk Sági-Kazár",
+                "email": "mark.sagikazar@gmail.com"
+            }
+        ],
+        "description": "Common HTTP Client implementations and tools for HTTPlug",
+        "homepage": "http://httplug.io",
+        "keywords": [
+            "client",
+            "common",
+            "http",
+            "httplug"
+        ]
+    },
+    {
+        "name": "symfony/options-resolver",
+        "version": "v4.1.2",
+        "version_normalized": "4.1.2.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/options-resolver.git",
+            "reference": "0aec9f9c5d2447ae7ea5ea31bc82f1d43f9a8a56"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/symfony/options-resolver/zipball/0aec9f9c5d2447ae7ea5ea31bc82f1d43f9a8a56",
+            "reference": "0aec9f9c5d2447ae7ea5ea31bc82f1d43f9a8a56",
+            "shasum": ""
+        },
+        "require": {
+            "php": "^7.1.3"
+        },
+        "time": "2018-07-07T16:00:36+00:00",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "4.1-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "Symfony\\Component\\OptionsResolver\\": ""
+            },
+            "exclude-from-classmap": [
+                "/Tests/"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            },
+            {
+                "name": "Symfony Community",
+                "homepage": "https://symfony.com/contributors"
+            }
+        ],
+        "description": "Symfony OptionsResolver Component",
+        "homepage": "https://symfony.com",
+        "keywords": [
+            "config",
+            "configuration",
+            "options"
+        ]
+    },
+    {
+        "name": "m4tthumphrey/php-gitlab-api",
+        "version": "9.10.0",
+        "version_normalized": "9.10.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/m4tthumphrey/php-gitlab-api.git",
+            "reference": "c946569ae75eff6317a5691ab590b6eb071bdb26"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/m4tthumphrey/php-gitlab-api/zipball/c946569ae75eff6317a5691ab590b6eb071bdb26",
+            "reference": "c946569ae75eff6317a5691ab590b6eb071bdb26",
+            "shasum": ""
+        },
+        "require": {
+            "ext-xml": "*",
+            "php": "^5.6 || ^7.0",
+            "php-http/client-common": "^1.6",
+            "php-http/client-implementation": "^1.0",
+            "php-http/discovery": "^1.2",
+            "php-http/httplug": "^1.1",
+            "php-http/multipart-stream-builder": "^1.0",
+            "symfony/options-resolver": "^2.6 || ^3.0 || ^4.0"
+        },
+        "require-dev": {
+            "guzzlehttp/psr7": "^1.2",
+            "php-http/guzzle6-adapter": "^1.0",
+            "php-http/mock-client": "^1.0",
+            "phpunit/phpunit": "^5.0"
+        },
+        "time": "2018-06-15T13:59:39+00:00",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "9.8.x-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "Gitlab\\": "lib/Gitlab/"
+            }
+        },
+        "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/http-interop/http-factory/.gitignore b/vendor/http-interop/http-factory/.gitignore
deleted file mode 100644
index f137394defcbf3b57fa7efd5b6654f13d5fb6571..0000000000000000000000000000000000000000
--- a/vendor/http-interop/http-factory/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-composer.lock
-composer.phar
-vendor/
diff --git a/vendor/http-interop/http-factory/.pullapprove.yml b/vendor/http-interop/http-factory/.pullapprove.yml
deleted file mode 100644
index 8cf081942c727499edb57c8f33df8701ef664748..0000000000000000000000000000000000000000
--- a/vendor/http-interop/http-factory/.pullapprove.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-extends: default
-reviewers:
-    -
-        name: contributors
-        required: 1
-        teams:
-            - http-factory-contributors
diff --git a/vendor/http-interop/http-factory/LICENSE b/vendor/http-interop/http-factory/LICENSE
deleted file mode 100644
index efb5a1966387cb9c10bef4db4fcf855ff32569a7..0000000000000000000000000000000000000000
--- a/vendor/http-interop/http-factory/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Woody Gilk
-
-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/http-interop/http-factory/README.md b/vendor/http-interop/http-factory/README.md
deleted file mode 100644
index 52ce04b8640d3e6577f74e067365bed3b1db5765..0000000000000000000000000000000000000000
--- a/vendor/http-interop/http-factory/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-HTTP Factories
-==============
-
-This is an implementation of the proposed [PSR-17][psr-17]. Please refer to the
-proposal for a description.
-
-[psr-17]: https://github.com/php-fig/fig-standards/tree/master/proposed/http-factory
diff --git a/vendor/http-interop/http-factory/composer.json b/vendor/http-interop/http-factory/composer.json
deleted file mode 100644
index bb7496faab2b85bc58a21b086e9e70f3e14639c6..0000000000000000000000000000000000000000
--- a/vendor/http-interop/http-factory/composer.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-    "name": "http-interop/http-factory",
-    "description": "Common interface for HTTP message factories",
-    "keywords": [
-        "psr",
-        "psr-7",
-        "psr-17",
-        "http",
-        "factory",
-        "message",
-        "request",
-        "response"
-    ],
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "PHP-FIG",
-            "homepage": "http://www.php-fig.org/"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.0",
-        "psr/http-message": "^1.0"
-    },
-    "autoload": {
-        "psr-4": {
-            "Interop\\Http\\Factory\\": "src/"
-        }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.0.x-dev"
-        }
-    }
-}
diff --git a/vendor/http-interop/http-factory/src/RequestFactoryInterface.php b/vendor/http-interop/http-factory/src/RequestFactoryInterface.php
deleted file mode 100644
index 802b4896f8509c258125d826d51e1cc363f65a07..0000000000000000000000000000000000000000
--- a/vendor/http-interop/http-factory/src/RequestFactoryInterface.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace Interop\Http\Factory;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\UriInterface;
-
-interface RequestFactoryInterface
-{
-    /**
-     * Create a new request.
-     *
-     * @param string $method
-     * @param UriInterface|string $uri
-     *
-     * @return RequestInterface
-     */
-    public function createRequest($method, $uri);
-}
diff --git a/vendor/http-interop/http-factory/src/ResponseFactoryInterface.php b/vendor/http-interop/http-factory/src/ResponseFactoryInterface.php
deleted file mode 100644
index 7dffc84522286a8257046108342f4fe8c6f7a23f..0000000000000000000000000000000000000000
--- a/vendor/http-interop/http-factory/src/ResponseFactoryInterface.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace Interop\Http\Factory;
-
-use Psr\Http\Message\ResponseInterface;
-
-interface ResponseFactoryInterface
-{
-    /**
-     * Create a new response.
-     *
-     * @param integer $code HTTP status code
-     *
-     * @return ResponseInterface
-     */
-    public function createResponse($code = 200);
-}
diff --git a/vendor/http-interop/http-factory/src/ServerRequestFactoryInterface.php b/vendor/http-interop/http-factory/src/ServerRequestFactoryInterface.php
deleted file mode 100644
index 991b2302154429be1831d124ca96823fe07876fb..0000000000000000000000000000000000000000
--- a/vendor/http-interop/http-factory/src/ServerRequestFactoryInterface.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace Interop\Http\Factory;
-
-use Psr\Http\Message\ServerRequestInterface;
-use Psr\Http\Message\UriInterface;
-
-interface ServerRequestFactoryInterface
-{
-    /**
-     * Create a new server request.
-     *
-     * @param string $method
-     * @param UriInterface|string $uri
-     *
-     * @return ServerRequestInterface
-     */
-    public function createServerRequest($method, $uri);
-
-    /**
-     * Create a new server request from server variables.
-     *
-     * @param array $server Typically $_SERVER or similar structure.
-     *
-     * @return ServerRequestInterface
-     *
-     * @throws \InvalidArgumentException
-     *  If no valid method or URI can be determined.
-     */
-    public function createServerRequestFromArray(array $server);
-}
diff --git a/vendor/http-interop/http-factory/src/StreamFactoryInterface.php b/vendor/http-interop/http-factory/src/StreamFactoryInterface.php
deleted file mode 100644
index b80535c4854125502c54d72c53eeb12165e58239..0000000000000000000000000000000000000000
--- a/vendor/http-interop/http-factory/src/StreamFactoryInterface.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-namespace Interop\Http\Factory;
-
-use Psr\Http\Message\StreamInterface;
-
-interface StreamFactoryInterface
-{
-    /**
-     * Create a new stream from a string.
-     *
-     * The stream SHOULD be created with a temporary resource.
-     *
-     * @param string $content
-     *
-     * @return StreamInterface
-     */
-    public function createStream($content = '');
-
-    /**
-     * Create a stream from an existing file.
-     *
-     * The file MUST be opened using the given mode, which may be any mode
-     * supported by the `fopen` function.
-     *
-     * The `$filename` MAY be any string supported by `fopen()`.
-     *
-     * @param string $filename
-     * @param string $mode
-     *
-     * @return StreamInterface
-     */
-    public function createStreamFromFile($filename, $mode = 'r');
-
-    /**
-     * Create a new stream from an existing resource.
-     *
-     * The stream MUST be readable and may be writable.
-     *
-     * @param resource $resource
-     *
-     * @return StreamInterface
-     */
-    public function createStreamFromResource($resource);
-}
diff --git a/vendor/http-interop/http-factory/src/UploadedFileFactoryInterface.php b/vendor/http-interop/http-factory/src/UploadedFileFactoryInterface.php
deleted file mode 100644
index 39d47f03db416ad81e4b37a294b2684d9933c95f..0000000000000000000000000000000000000000
--- a/vendor/http-interop/http-factory/src/UploadedFileFactoryInterface.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace Interop\Http\Factory;
-
-use Psr\Http\Message\UploadedFileInterface;
-
-interface UploadedFileFactoryInterface
-{
-    /**
-     * Create a new uploaded file.
-     *
-     * If a string is used to create the file, a temporary resource will be
-     * created with the content of the string.
-     *
-     * If a size is not provided it will be determined by checking the size of
-     * the file.
-     *
-     * @see http://php.net/manual/features.file-upload.post-method.php
-     * @see http://php.net/manual/features.file-upload.errors.php
-     *
-     * @param string|resource $file
-     * @param integer $size in bytes
-     * @param integer $error PHP file upload error
-     * @param string $clientFilename
-     * @param string $clientMediaType
-     *
-     * @return UploadedFileInterface
-     *
-     * @throws \InvalidArgumentException
-     *  If the file resource is not readable.
-     */
-    public function createUploadedFile(
-        $file,
-        $size = null,
-        $error = \UPLOAD_ERR_OK,
-        $clientFilename = null,
-        $clientMediaType = null
-    );
-}
diff --git a/vendor/http-interop/http-factory/src/UriFactoryInterface.php b/vendor/http-interop/http-factory/src/UriFactoryInterface.php
deleted file mode 100644
index 2e422d6e90121345614b14c46ded44b7238017ca..0000000000000000000000000000000000000000
--- a/vendor/http-interop/http-factory/src/UriFactoryInterface.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Interop\Http\Factory;
-
-use Psr\Http\Message\UriInterface;
-
-interface UriFactoryInterface
-{
-    /**
-     * Create a new URI.
-     *
-     * @param string $uri
-     *
-     * @return UriInterface
-     *
-     * @throws \InvalidArgumentException
-     *  If the given URI cannot be parsed.
-     */
-    public function createUri($uri = '');
-}
diff --git a/vendor/kriswallsmith/buzz/.gitattributes b/vendor/kriswallsmith/buzz/.gitattributes
deleted file mode 100644
index e993ce46dfaf6ec5ee5a34ec55a9b7fb54daed20..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/.gitattributes
+++ /dev/null
@@ -1,9 +0,0 @@
-* text=auto
-
-/examples export-ignore
-/tests export-ignore
-/.gitignore export-ignore
-/.travis.yml export-ignore
-/CHANGELOG.md export-ignore
-/README.md export-ignore
-/phpunit.xml.dist export-ignore
diff --git a/vendor/kriswallsmith/buzz/.php_cs b/vendor/kriswallsmith/buzz/.php_cs
deleted file mode 100644
index 82fcf5ae936f4bc4108d52befeceb0a400a7f6d5..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/.php_cs
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-return PhpCsFixer\Config::create()
-    ->setRules(array(
-        '@Symfony' => true,
-        '@Symfony:risky' => true,
-        'array_syntax' => array('syntax' => 'short'),
-        'protected_to_private' => false,
-        'declare_strict_types' => true,
-    ))
-    ->setRiskyAllowed(true)
-    ->setCacheFile((getenv('TRAVIS') ? getenv('HOME') . '/.php-cs-fixer' : __DIR__).'/.php_cs.cache')
-    ->setUsingCache(true)
-    ->setFinder(
-        PhpCsFixer\Finder::create()
-            ->in(__DIR__)
-            ->exclude('vendor')
-            ->name('*.php')
-    )
-;
\ No newline at end of file
diff --git a/vendor/kriswallsmith/buzz/.scrutinizer.yml b/vendor/kriswallsmith/buzz/.scrutinizer.yml
deleted file mode 100644
index d92b5c69b960e5d552ba626768b2aebce3ce71d8..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/.scrutinizer.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-filter:
-    excluded_paths: [vendor/*, tests/*, lib/Middleware/DigestAuthMiddleware.php]
-    
-checks:
-    php:
-        code_rating: true
-        duplication: true
-tools:
-    external_code_coverage: true
diff --git a/vendor/kriswallsmith/buzz/.styleci.yml b/vendor/kriswallsmith/buzz/.styleci.yml
deleted file mode 100644
index f97f9b983d4c9dbbba4650c863f8a904e7819578..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/.styleci.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-preset: symfony
-
-finder:
-    exclude:
-        - "vendor"
-
-enabled:
-    - short_array_syntax
-
-disabled:
-    - phpdoc_annotation_without_dot # This is still buggy: https://github.com/symfony/symfony/pull/19198
\ No newline at end of file
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/composer.json b/vendor/kriswallsmith/buzz/composer.json
deleted file mode 100644
index 089f1e5e72769a1870a586b5fd720ed61a83ee53..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/composer.json
+++ /dev/null
@@ -1,55 +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/"
-        },
-        {
-            "name": "Tobias Nyholm",
-            "email": "tobias.nyholm@gmail.com",
-            "homepage": "http://tnyholm.se/"
-        }
-    ],
-    "require": {
-        "php": "^7.1",
-        "psr/http-message": "^1.0",
-        "psr/http-client": "^0.1",
-        "php-http/httplug": "^1.1",
-        "nyholm/psr7": "^0.3",
-        "symfony/options-resolver": "^3.4 || ^4.0"
-    },
-    "require-dev": {
-        "friendsofphp/php-cs-fixer": "^2.11",
-        "php-http/client-integration-tests": "^0.6.2",
-        "phpunit/phpunit": "^6.5.7",
-        "psr/log": "^1.0",
-        "symfony/phpunit-bridge": "^4.0"
-    },
-    "provide": {
-        "php-http/client-implementation": "1.0"
-    },
-    "suggest": {
-        "ext-curl": "*"
-    },
-    "autoload": {
-        "psr-4": {
-            "Buzz\\": "lib"
-        }
-    },
-    "autoload-dev": {
-        "psr-4": {
-            "Buzz\\Test\\": "tests"
-        }
-    },
-    "scripts": {
-        "test": "vendor/bin/simple-phpunit",
-        "test-ci": "vendor/bin/simple-phpunit --coverage-text --coverage-clover=build/coverage.xml"
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/doc/client.md b/vendor/kriswallsmith/buzz/doc/client.md
deleted file mode 100644
index 07c0d55b670c209cf04e882d41526b0a3cdef0c4..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/doc/client.md
+++ /dev/null
@@ -1,92 +0,0 @@
-[<-- Index](/doc/index.md)
-
-# Clients
-
-Clients are the low-level objects to send HTTP requests. All clients are minimalistic both in 
-features and flexibility. You may give the client some default configuration and some additional 
-configuration each time you send a request. 
-
-There are 3 clients: `FileGetContents`, `Curl` and `MultiCurl`. 
-
-```php
-$request = new PSR7Request('GET', 'https://example.com');
-
-$client = new Buzz\Client\FileGetContents(['allow_redirects'=>true]);
-$response = $client->send($request, ['timeout' => 4]);
-```
-
-## Configuration
-
-Not all configuration works will all clients. If there is any client specific configuration it 
-will be noted below. 
-
-#### allow_redirects
-
-Type: boolean<br>
-Default: `false`
-
-Should the client follow HTTP redirects or not. 
-
-#### callback
-
-Type: callable<br>
-Default: `function() {}`<br>
-*Only for MultiCurl*
-
-A callback function that is called after a request has been sent. 
-
-```php
-$callback = function(RequestInterface $request, ResponseInterface $response = null, ClientException $exception = null) {
-    // Process the response
-};
-$request = new PSR7Request('GET', 'https://example.com');
-$client->sendAsyncRequest($request, array('callback' => $callback));
-```
-
-#### curl
-
-Type: array<br>
-Default: `[]`<br>
-*Only for Curl and MultiCurl*
-
-An array with Curl options. 
-
-```php
-$request = new PSR7Request('GET', 'https://example.com');
-$client->sendAsyncRequest($request, array('curl' => [
-    CURLOPT_FAILONERROR => false,
-]));
-```
-
-#### max_redirects
-
-Type: integer<br>
-Default: `5`
-
-The maximum number of redirects to follow. Note that this will have no effect unless you set
-`'allow_redirects' => true`.
-
-#### proxy
-
-Type: string<br>
-Default: `null`
-
-A proxy server to use when sending requests. 
-
-#### timeout
-
-Type: integer<br>
-Default: `30`
-
-The time to wait before interrupt the request. 
-
-#### verify
-
-Type: boolean<br>
-Default: `true`
-
-If SSL protocols should verified. 
-
----
-
-Continue reading about [Middlewares](/doc/middlewares.md).
diff --git a/vendor/kriswallsmith/buzz/doc/index.md b/vendor/kriswallsmith/buzz/doc/index.md
deleted file mode 100644
index 9eb6a194b38b42b97bce47b13fc0b6d1b77dd22f..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/doc/index.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# Buzz documentation
-
-Buzz is a simple and lightweight HTTP client which is easy to use. This page is 
-the index of the documentation. Please use the table of contents below to start
-reading. 
-
-* [Browser](#browser)
-* [Submit forms](#submit-a-form) 
-* [Client](/doc/client.md)
-* [Middlewares](/doc/middlewares.md) 
-* [Symfony Bundle](/doc/symfony.md) 
-
-
-## Browser
-
-The Browser is the high-level object to send HTTP requests. Main focus is on simplicity. 
-
-When a `Browser` in constructed you have to select a [Client](/doc/client.md) to use. The 
-`FileGetContents` client is used by default. See example of how
-to use the Bowser: 
-
-```php
-$browser = new Buzz\Browser();
-$response = $browser->get('https://example.com');
-$response = $browser->get('https://example.com', ['User-Agent'=>'Buzz']);
-$response = $browser->post('https://example.com', ['User-Agent'=>'Buzz'], 'http-post-body');
-
-$response = $browser->head('https://example.com');
-$response = $browser->patch('https://example.com');
-$response = $browser->put('https://example.com');
-$response = $browser->delete('https://example.com');
-
-
-$response = $browser->request('GET', 'https://example.com');
-```
-
-You do also have a function to send PSR-7 requests. 
-
-```php
-$request = new PSR7Request('GET', 'https://google.com/foo');
-$response = $browser->sendRequest($request)
-```
-
-## Submit a form
-
-With Buzz you have built in support for posing forms. You could of course create your own PSR-7 request and posting it 
-as you normally would. But it might be easier to use the `Browser::submit()` function or the `FormRequestBuilder`. 
-
-Below is an example how to use `Browser::submit()` to upload a file. 
-
-```php
-$browser->submitForm('http://example.com/foo', [
-    'user' => 'Kris Wallsmith',
-    'image' => [
-        'path'=>'/path/to/image.jpg'
-      ],
-]);
-``` 
-
-```php
-$browser->submitForm('http://example.com/foo', [
-    'user[name]' => 'Kris Wallsmith',
-    'user[image]' => [
-        'path'=>'/path/to/image.jpg',
-        'filename' => 'my-image.jpg',
-        'contentType' => 'image/jpg',
-      ],
-]);
-``` 
-
-### Using the FormRequestBuilder
-
-If you have a large from or you want to build your request in a structured way you may use the `FormRequestBuilder`.
-
-```php
-use Buzz\Message\FormRequestBuilder;
-
-$builder = new FormRequestBuilder();
-$builder->addField('user[name]', 'Kris Wallsmith');
-$builder->addFile('user[image]', '/path/to/image.jpg', 'image/jpg', 'my-image.jpg');
-$builder->addFile('cover-image', '/path/to/cover.jpg');
-
-$browser->submitForm('http://example.com/foo', $builder->build());
-``` 
-
----
-
-Continue reading about [Clients](/doc/client.md).
diff --git a/vendor/kriswallsmith/buzz/doc/middlewares.md b/vendor/kriswallsmith/buzz/doc/middlewares.md
deleted file mode 100644
index 1b75ea3fd27fc2c350695fea2583b51b0a8bcef5..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/doc/middlewares.md
+++ /dev/null
@@ -1,92 +0,0 @@
-[<-- Index](/doc/index.md)
-
-# Buzz middlewares
-
-If you want to modify the request or response somehow, a middleware is the way to
-go. Every time you send a request with the `Browser` it will run through all the
-middlewares. The order of the middlewares is important. The first middleware added
-to the `Browser` will be the first one that is executed when handling the request and
-the last one to be executed when handling the response. 
-
-```
-Request  ---> Middleware1 ---> Middleware2 ---> HttpClient ----
-                                                               | (processing call)
-Response <--- Middleware1 <--- Middleware2 <--- HttpClient <---
-```
-## Creating a middleware
-
-You are free to create any custom middleware you want. It is super simple to do so. 
-Let's look at the example when we create a middleware for adding the User-Agent 
-request header. 
-
-First we need to create a class that implements `Buzz\Middleware\MiddlewareInterface`
-
-```php
-<?php
-
-use Buzz\Middleware\MiddlewareInterface;
-
-class UserAgentMiddleware implements MiddlewareInterface 
-{
-  // ...
-``` 
-
-The interface has two functions; `handleRequest` and `handleResponse`. The last
-parameter to these functions is a `callable`. That callable is actually the next
-middleware in the chain. It is **very important** that you end your function by
-returning the the result when calling that callable. If you forget about that,
-then no request will be sent.
-
-Let's look at an example implementation of `handleRequest`:
-
-```php
-public function handleRequest(RequestInterface $request, callable $next)
-{
-    $request = $request->withAddedHeader('User-Agent', 'Buzz');
-    
-    return $next($request);
-}
-```
-
-Note that PSR-7 requests and responses are immutable. That is why we do 
-`$request = $request->with...`. 
-
-Sine this middleware does not need to modify the response we just let the 
-`handleResponse` function to be empty like: 
-
- ```php
- public function handleResponse(RequestInterface $request, ResponseInterface $response, callable $next)
- {     
-     return $next($request, $response);
- }
- ```
-
-### The full example
-
-```php
-<?php
-
-use Buzz\Middleware\MiddlewareInterface;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class UserAgentMiddleware implements MiddlewareInterface 
-{
-  public function handleRequest(RequestInterface $request, callable $next)
-  {
-      $request = $request->withAddedHeader('User-Agent', 'Buzz');
-      
-      return $next($request);
-  }
-  
-   public function handleResponse(RequestInterface $request, ResponseInterface $response, callable $next)
-   {     
-       return $next($request, $response);
-   }
-}
-``` 
-
-
----
-
-Continue reading about [Symfony integration](/doc/symfony.md).
\ No newline at end of file
diff --git a/vendor/kriswallsmith/buzz/doc/symfony.md b/vendor/kriswallsmith/buzz/doc/symfony.md
deleted file mode 100644
index 5e8988406fc832a540045778fd47cc4ecb9b8529..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/doc/symfony.md
+++ /dev/null
@@ -1,48 +0,0 @@
-[<-- Index](/doc/index.md)
-
-# Symfony integration
-
-Symfony is a great PHP framework and of course should we have some nice integration 
-with it. We have provided a flex recipe in the [contrib repository](https://github.com/symfony/recipes-contrib) 
-which will register the `Browser` and clients as services. But of course, you want
-more! You want a proper bundle. 
-
-Buzz is compatible with HTTPlug which means that we can use all the greatness from 
-the [HTTPlugBundle](https://github.com/php-http/httplugbundle). 
-
-## Install 
-
-```
-composer require php-http/httplug-bundle
-```
-
-## Configure
-
-```
-# config/services.yaml
-# This is done by the flex recipe
-services: 
-    Buzz\Browser: 
-        calls:
-            - ['addMiddleware', ['@buzz.middleware.content_length']]
-    
-    buzz.middleware.content_length:
-        class: Buzz\Middleware\ContentLengthMiddleware
-```
-
-```
-# config/httplug.yaml
-httplug:
-    clients:
-        my_buzz:
-            service: 'Buzz\Browser' 
-```
-
-You will now have a service named `httplug.client.my_buzz`. You can of course add 
-plugins method clients and whatever you want according to the 
-[HTTPlug documentation](http://docs.php-http.org/en/latest/integrations/symfony-bundle.html).
-
-
----
-
-Go back to [index](/doc/index.md).
\ No newline at end of file
diff --git a/vendor/kriswallsmith/buzz/lib/Browser.php b/vendor/kriswallsmith/buzz/lib/Browser.php
deleted file mode 100644
index 3f22410fd1280b586b04401a95ef3192ea0e51ce..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Browser.php
+++ /dev/null
@@ -1,262 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz;
-
-use Buzz\Client\BuzzClientInterface;
-use Buzz\Client\FileGetContents;
-use Buzz\Exception\ClientException;
-use Buzz\Exception\InvalidArgumentException;
-use Buzz\Exception\LogicException;
-use Buzz\Middleware\MiddlewareInterface;
-use Http\Message\RequestFactory;
-use Interop\Http\Factory\RequestFactoryInterface;
-use Nyholm\Psr7\Factory\MessageFactory;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class Browser implements BuzzClientInterface
-{
-    /** @var BuzzClientInterface */
-    private $client;
-
-    /** @var RequestFactoryInterface|RequestFactory */
-    private $factory;
-
-    /**
-     * @var MiddlewareInterface[]
-     */
-    private $middlewares = [];
-
-    /** @var RequestInterface */
-    private $lastRequest;
-
-    /** @var ResponseInterface */
-    private $lastResponse;
-
-    public function __construct(BuzzClientInterface $client = null)
-    {
-        $this->client = $client ?: new FileGetContents();
-        $this->factory = new MessageFactory();
-    }
-
-    public function get(string $url, array $headers = []): ResponseInterface
-    {
-        return $this->request('GET', $url, $headers);
-    }
-
-    public function post(string $url, array $headers = [], string $body = ''): ResponseInterface
-    {
-        return $this->request('POST', $url, $headers, $body);
-    }
-
-    public function head(string $url, array  $headers = []): ResponseInterface
-    {
-        return $this->request('HEAD', $url, $headers);
-    }
-
-    public function patch(string $url, array  $headers = [], string $body = ''): ResponseInterface
-    {
-        return $this->request('PATCH', $url, $headers, $body);
-    }
-
-    public function put(string $url, array  $headers = [], string $body = ''): ResponseInterface
-    {
-        return $this->request('PUT', $url, $headers, $body);
-    }
-
-    public function delete(string $url, array  $headers = [], string $body = ''): ResponseInterface
-    {
-        return $this->request('DELETE', $url, $headers, $body);
-    }
-
-    /**
-     * Sends a request.
-     *
-     * @param string $method  The request method to use
-     * @param string $url     The URL to call
-     * @param array  $headers An array of request headers
-     * @param string $body    The request content
-     *
-     * @return ResponseInterface The response object
-     */
-    public function request(string $method, string $url, array $headers = [], string $body = ''): ResponseInterface
-    {
-        $request = $this->createRequest($method, $url, $headers, $body);
-
-        return $this->sendRequest($request);
-    }
-
-    /**
-     * Submit a form.
-     *
-     * @throws ClientException
-     * @throws LogicException
-     * @throws InvalidArgumentException
-     */
-    public function submitForm(string $url, array $fields, string $method = 'POST', array $headers = []): ResponseInterface
-    {
-        $body = [];
-        $files = '';
-        $boundary = uniqid('', true);
-        foreach ($fields as $name => $field) {
-            if (!isset($field['path'])) {
-                $body[$name] = $field;
-            } else {
-                // This is a file
-                $fileContent = file_get_contents($field['path']);
-                $files .= $this->prepareMultipart($name, $fileContent, $boundary, $field);
-            }
-        }
-
-        if (empty($files)) {
-            $headers['Content-Type'] = 'application/x-www-form-urlencoded';
-            $body = http_build_query($body);
-        } else {
-            $headers['Content-Type'] = 'multipart/form-data; boundary="'.$boundary.'"';
-
-            foreach ($body as $name => $value) {
-                $files .= $this->prepareMultipart($name, $value, $boundary);
-            }
-            $body = "$files--{$boundary}--\r\n";
-        }
-
-        $request = $this->createRequest($method, $url, $headers, $body);
-
-        return $this->sendRequest($request);
-    }
-
-    /**
-     * Send a PSR7 request.
-     *
-     * @throws ClientException
-     * @throws LogicException
-     * @throws InvalidArgumentException
-     */
-    public function sendRequest(RequestInterface $request, array $options = []): ResponseInterface
-    {
-        $chain = $this->createMiddlewareChain($this->middlewares, function (RequestInterface $request, callable $responseChain) use ($options) {
-            $response = $this->client->sendRequest($request, $options);
-            $responseChain($request, $response);
-        }, function (RequestInterface $request, ResponseInterface $response) {
-            $this->lastRequest = $request;
-            $this->lastResponse = $response;
-        });
-
-        // Call the chain
-        $chain($request);
-
-        return $this->lastResponse;
-    }
-
-    /**
-     * @param MiddlewareInterface[] $middlewares
-     * @param callable              $requestChainLast
-     * @param callable              $responseChainLast
-     *
-     * @return callable
-     */
-    private function createMiddlewareChain(array $middlewares, callable $requestChainLast, callable $responseChainLast): callable
-    {
-        $responseChainNext = $responseChainLast;
-
-        // Build response chain
-        /** @var MiddlewareInterface $middleware */
-        foreach ($middlewares as $middleware) {
-            $lastCallable = function (RequestInterface $request, ResponseInterface $response) use ($middleware, $responseChainNext) {
-                return $middleware->handleResponse($request, $response, $responseChainNext);
-            };
-
-            $responseChainNext = $lastCallable;
-        }
-
-        $requestChainLast = function (RequestInterface $request) use ($requestChainLast, $responseChainNext) {
-            // Send the actual request and get the response
-            $requestChainLast($request, $responseChainNext);
-        };
-
-        $middlewares = array_reverse($middlewares);
-
-        // Build request chain
-        $requestChainNext = $requestChainLast;
-        /** @var MiddlewareInterface $middleware */
-        foreach ($middlewares as $middleware) {
-            $lastCallable = function (RequestInterface $request) use ($middleware, $requestChainNext) {
-                return $middleware->handleRequest($request, $requestChainNext);
-            };
-
-            $requestChainNext = $lastCallable;
-        }
-
-        return $requestChainNext;
-    }
-
-    public function getLastRequest(): ?RequestInterface
-    {
-        return $this->lastRequest;
-    }
-
-    public function getLastResponse(): ?ResponseInterface
-    {
-        return $this->lastResponse;
-    }
-
-    public function getClient(): BuzzClientInterface
-    {
-        return $this->client;
-    }
-
-    /**
-     * Add a new middleware to the stack.
-     *
-     * @param MiddlewareInterface $middleware
-     */
-    public function addMiddleware(MiddlewareInterface $middleware): void
-    {
-        $this->middlewares[] = $middleware;
-    }
-
-    private function prepareMultipart(string $name, string $content, string $boundary, array $data = []): string
-    {
-        $output = '';
-        $fileHeaders = [];
-
-        // Set a default content-disposition header
-        $fileHeaders['Content-Disposition'] = sprintf('form-data; name="%s"', $name);
-        if (isset($data['filename'])) {
-            $fileHeaders['Content-Disposition'] .= sprintf('; filename="%s"', $data['filename']);
-        }
-
-        // Set a default content-length header
-        if ($length = strlen($content)) {
-            $fileHeaders['Content-Length'] = (string) $length;
-        }
-
-        if (isset($data['contentType'])) {
-            $fileHeaders['Content-Type'] = $data['contentType'];
-        }
-
-        // Add start
-        $output .= "--$boundary\r\n";
-        foreach ($fileHeaders as $key => $value) {
-            $output .= sprintf("%s: %s\r\n", $key, $value);
-        }
-        $output .= "\r\n";
-        $output .= $content;
-        $output .= "\r\n";
-
-        return $output;
-    }
-
-    protected function createRequest(string $method, string $url, array $headers, $body): RequestInterface
-    {
-        $request = $this->factory->createRequest($method, $url);
-        $request->getBody()->write($body);
-        foreach ($headers as $name => $value) {
-            $request = $request->withAddedHeader($name, $value);
-        }
-
-        return $request;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Client/AbstractClient.php b/vendor/kriswallsmith/buzz/lib/Client/AbstractClient.php
deleted file mode 100644
index 24f48d9010f4858d480dc603bea476600661e8c9..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Client/AbstractClient.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Client;
-
-use Buzz\Configuration\ParameterBag;
-use Buzz\Exception\InvalidArgumentException;
-use Symfony\Component\OptionsResolver\OptionsResolver;
-
-abstract class AbstractClient
-{
-    /**
-     * @var OptionsResolver
-     */
-    private $optionsResolver;
-
-    /**
-     * @var ParameterBag
-     */
-    private $options;
-
-    public function __construct(array $options = [])
-    {
-        $this->options = new ParameterBag();
-        $this->options = $this->doValidateOptions($options);
-    }
-
-    protected function getOptionsResolver(): OptionsResolver
-    {
-        if (null !== $this->optionsResolver) {
-            return $this->optionsResolver;
-        }
-
-        $this->optionsResolver = new OptionsResolver();
-        $this->configureOptions($this->optionsResolver);
-
-        return $this->optionsResolver;
-    }
-
-    /**
-     * Validate a set of options and return a new and shiny ParameterBag.
-     */
-    protected function validateOptions(array $options = []): ParameterBag
-    {
-        if (empty($options)) {
-            return $this->options;
-        }
-
-        return $this->doValidateOptions($options);
-    }
-
-    /**
-     * Validate a set of options and return a new and shiny ParameterBag.
-     */
-    private function doValidateOptions(array $options = []): ParameterBag
-    {
-        $parameterBag = $this->options->add($options);
-
-        try {
-            $parameters = $this->getOptionsResolver()->resolve($parameterBag->all());
-        } catch (\Throwable $e) {
-            // Wrap any errors.
-            throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e);
-        }
-
-        return new ParameterBag($parameters);
-    }
-
-    protected function configureOptions(OptionsResolver $resolver): void
-    {
-        $resolver->setDefaults([
-            'allow_redirects' => false,
-            'max_redirects' => 5,
-            'timeout' => 30,
-            'verify' => true,
-            'proxy' => null,
-        ]);
-
-        $resolver->setAllowedTypes('allow_redirects', 'boolean');
-        $resolver->setAllowedTypes('verify', 'boolean');
-        $resolver->setAllowedTypes('max_redirects', 'integer');
-        $resolver->setAllowedTypes('timeout', ['integer', 'float']);
-        $resolver->setAllowedTypes('proxy', ['null', 'string']);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Client/AbstractCurl.php b/vendor/kriswallsmith/buzz/lib/Client/AbstractCurl.php
deleted file mode 100644
index a7b82b9d7b087ec5b2ea7d3bf00672e2447e2d4e..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Client/AbstractCurl.php
+++ /dev/null
@@ -1,248 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Client;
-
-use Buzz\Configuration\ParameterBag;
-use Buzz\Message\HeaderConverter;
-use Buzz\Exception\ClientException;
-use Buzz\Exception\NetworkException;
-use Buzz\Exception\RequestException;
-use Buzz\Message\ResponseBuilder;
-use Nyholm\Psr7\Factory\MessageFactory;
-use Psr\Http\Message\RequestInterface;
-use Symfony\Component\OptionsResolver\OptionsResolver;
-
-/**
- * Base client class with helpers for working with cURL.
- */
-abstract class AbstractCurl extends AbstractClient
-{
-    private $handles = [];
-
-    private $maxHandles = 5;
-
-    protected function configureOptions(OptionsResolver $resolver): void
-    {
-        parent::configureOptions($resolver);
-
-        $resolver->setDefault('curl', []);
-        $resolver->setAllowedTypes('curl', ['array']);
-    }
-
-    /**
-     * Creates a new cURL resource.
-     *
-     * @return resource A new cURL resource
-     *
-     * @throws ClientException If unable to create a cURL resource
-     */
-    protected function createHandle()
-    {
-        $curl = $this->handles ? array_pop($this->handles) : curl_init();
-        if (false === $curl) {
-            throw new ClientException('Unable to create a new cURL handle');
-        }
-
-        return $curl;
-    }
-
-    /**
-     * Release a cUrl resource. This function is from Guzzle.
-     *
-     * @param resource $curl
-     */
-    protected function releaseHandle($curl): void
-    {
-        if (count($this->handles) >= $this->maxHandles) {
-            curl_close($curl);
-        } else {
-            // Remove all callback functions as they can hold onto references
-            // and are not cleaned up by curl_reset. Using curl_setopt_array
-            // does not work for some reason, so removing each one
-            // individually.
-            curl_setopt($curl, CURLOPT_HEADERFUNCTION, null);
-            curl_setopt($curl, CURLOPT_READFUNCTION, null);
-            curl_setopt($curl, CURLOPT_WRITEFUNCTION, null);
-            curl_setopt($curl, CURLOPT_PROGRESSFUNCTION, null);
-            curl_reset($curl);
-            $this->handles[] = $curl;
-        }
-    }
-
-    /**
-     * Prepares a cURL resource to send a request.
-     *
-     * @param resource         $curl
-     * @param RequestInterface $request
-     * @param ParameterBag     $options
-     *
-     * @return ResponseBuilder
-     */
-    protected function prepare($curl, RequestInterface $request, ParameterBag $options): ResponseBuilder
-    {
-        if (defined('CURLOPT_PROTOCOLS')) {
-            curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
-            curl_setopt($curl, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
-        }
-
-        curl_setopt($curl, CURLOPT_HEADER, false);
-        curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
-        curl_setopt($curl, CURLOPT_FAILONERROR, false);
-
-        $this->setOptionsFromParameterBag($curl, $options);
-        $this->setOptionsFromRequest($curl, $request);
-
-        $responseBuilder = new ResponseBuilder(new MessageFactory());
-        curl_setopt($curl, CURLOPT_HEADERFUNCTION, function ($ch, $data) use ($responseBuilder) {
-            $str = trim($data);
-            if ('' !== $str) {
-                if (0 === strpos(strtolower($str), 'http/')) {
-                    $responseBuilder->setStatus($str);
-                } else {
-                    $responseBuilder->addHeader($str);
-                }
-            }
-
-            return strlen($data);
-        });
-
-        curl_setopt($curl, CURLOPT_WRITEFUNCTION, function ($ch, $data) use ($responseBuilder) {
-            return $responseBuilder->writeBody($data);
-        });
-
-        // apply additional options
-        curl_setopt_array($curl, $options->get('curl'));
-
-        return $responseBuilder;
-    }
-
-    /**
-     * Sets options on a cURL resource based on a request.
-     *
-     * @param resource         $curl    A cURL resource
-     * @param RequestInterface $request A request object
-     */
-    private function setOptionsFromRequest($curl, RequestInterface $request): void
-    {
-        $options = [
-            CURLOPT_CUSTOMREQUEST => $request->getMethod(),
-            CURLOPT_URL => $request->getUri()->__toString(),
-            CURLOPT_HTTPHEADER => HeaderConverter::toBuzzHeaders($request->getHeaders()),
-        ];
-
-        if (0 !== $version = $this->getProtocolVersion($request)) {
-            $options[CURLOPT_HTTP_VERSION] = $version;
-        }
-
-        if ($request->getUri()->getUserInfo()) {
-            $options[CURLOPT_USERPWD] = $request->getUri()->getUserInfo();
-        }
-
-        switch (strtoupper($request->getMethod())) {
-            case 'HEAD':
-                $options[CURLOPT_NOBODY] = true;
-
-                break;
-
-            case 'GET':
-                $options[CURLOPT_HTTPGET] = true;
-
-                break;
-
-            case 'POST':
-            case 'PUT':
-            case 'DELETE':
-            case 'PATCH':
-            case 'OPTIONS':
-                $body = $request->getBody();
-                $bodySize = $body->getSize();
-                if (0 !== $bodySize) {
-                    if ($body->isSeekable()) {
-                        $body->rewind();
-                    }
-
-                    // Message has non empty body.
-                    if (null === $bodySize || $bodySize > 1024 * 1024) {
-                        // Avoid full loading large or unknown size body into memory
-                        $options[CURLOPT_UPLOAD] = true;
-                        if (null !== $bodySize) {
-                            $options[CURLOPT_INFILESIZE] = $bodySize;
-                        }
-                        $options[CURLOPT_READFUNCTION] = function ($ch, $fd, $length) use ($body) {
-                            return $body->read($length);
-                        };
-                    } else {
-                        // Small body can be loaded into memory
-                        $options[CURLOPT_POSTFIELDS] = (string) $body;
-                    }
-                }
-        }
-
-        curl_setopt_array($curl, $options);
-    }
-
-    /**
-     * @param resource     $curl
-     * @param ParameterBag $options
-     */
-    private function setOptionsFromParameterBag($curl, ParameterBag $options): void
-    {
-        $timeout = $options->get('timeout');
-        $proxy = $options->get('proxy');
-        if ($proxy) {
-            curl_setopt($curl, CURLOPT_PROXY, $proxy);
-        }
-
-        $canFollow = !ini_get('safe_mode') && !ini_get('open_basedir') && $options->get('allow_redirects');
-        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, $canFollow);
-        curl_setopt($curl, CURLOPT_MAXREDIRS, $canFollow ? $options->get('max_redirects') : 0);
-        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $options->get('verify') ? 1 : 0);
-        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, $options->get('verify') ? 2 : 0);
-        curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
-    }
-
-    /**
-     * @param RequestInterface $request
-     * @param int              $errno
-     * @param resource         $curl
-     *
-     * @throws NetworkException
-     * @throws RequestException
-     */
-    protected function parseError(RequestInterface $request, int $errno, $curl): void
-    {
-        switch ($errno) {
-            case CURLE_OK:
-                // All OK, create a response object
-                break;
-            case CURLE_COULDNT_RESOLVE_PROXY:
-            case CURLE_COULDNT_RESOLVE_HOST:
-            case CURLE_COULDNT_CONNECT:
-            case CURLE_OPERATION_TIMEOUTED:
-            case CURLE_SSL_CONNECT_ERROR:
-                throw new NetworkException($request, curl_error($curl), $errno);
-            default:
-                throw new RequestException($request, curl_error($curl), $errno);
-        }
-    }
-
-    private function getProtocolVersion(RequestInterface $request): int
-    {
-        switch ($request->getProtocolVersion()) {
-            case '1.0':
-                return CURL_HTTP_VERSION_1_0;
-            case '1.1':
-                return CURL_HTTP_VERSION_1_1;
-            case '2.0':
-                if (defined('CURL_HTTP_VERSION_2_0')) {
-                    return CURL_HTTP_VERSION_2_0;
-                }
-
-                throw new \UnexpectedValueException('libcurl 7.33 needed for HTTP 2.0 support');
-            default:
-                return 0;
-        }
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Client/BatchClientInterface.php b/vendor/kriswallsmith/buzz/lib/Client/BatchClientInterface.php
deleted file mode 100644
index 0cb09a36f46e803fd64b6455a6afd16d091ebc19..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Client/BatchClientInterface.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Client;
-
-use Buzz\Exception\ClientException;
-use Psr\Http\Message\RequestInterface;
-
-/**
- * A client capable of running batches of requests.
- *
- * The Countable implementation should return the number of queued requests.
- */
-interface BatchClientInterface extends \Countable
-{
-    /**
-     * @param RequestInterface $request
-     * @param array            $options
-     */
-    public function sendAsyncRequest(RequestInterface $request, array $options = []): void;
-
-    /**
-     * Processes all queued requests.
-     *
-     * @throws ClientException If something goes wrong
-     */
-    public function flush(): void;
-
-    /**
-     * Processes zero or more queued requests.
-     *
-     * @throws ClientException If something goes wrong
-     */
-    public function proceed(): void;
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Client/BuzzClientInterface.php b/vendor/kriswallsmith/buzz/lib/Client/BuzzClientInterface.php
deleted file mode 100644
index 21b4a7615a7a1e403e2088be6f23e2593ad9cc08..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Client/BuzzClientInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Client;
-
-use Http\Client\HttpClient;
-use Psr\Http\Client\ClientInterface;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-interface BuzzClientInterface extends ClientInterface, HttpClient
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function sendRequest(RequestInterface $request, array $options = []): ResponseInterface;
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Client/Curl.php b/vendor/kriswallsmith/buzz/lib/Client/Curl.php
deleted file mode 100644
index fd246e646f7b6bc9ed9c27cf5a5d5ed3641b0f11..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Client/Curl.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Client;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class Curl extends AbstractCurl implements BuzzClientInterface
-{
-    public function sendRequest(RequestInterface $request, array $options = []): ResponseInterface
-    {
-        $options = $this->validateOptions($options);
-        $curl = $this->createHandle();
-        $responseBuilder = $this->prepare($curl, $request, $options);
-
-        try {
-            curl_exec($curl);
-            $this->parseError($request, curl_errno($curl), $curl);
-        } finally {
-            $this->releaseHandle($curl);
-        }
-
-        return $responseBuilder->getResponse();
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Client/FileGetContents.php b/vendor/kriswallsmith/buzz/lib/Client/FileGetContents.php
deleted file mode 100644
index fdf48c40e5ea024efbf649289114918b746ed751..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Client/FileGetContents.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Client;
-
-use Buzz\Configuration\ParameterBag;
-use Buzz\Message\HeaderConverter;
-use Buzz\Exception\NetworkException;
-use Buzz\Message\ResponseBuilder;
-use Nyholm\Psr7\Factory\MessageFactory;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class FileGetContents extends AbstractClient implements BuzzClientInterface
-{
-    public function sendRequest(RequestInterface $request, array $options = []): ResponseInterface
-    {
-        $options = $this->validateOptions($options);
-        $context = stream_context_create($this->getStreamContextArray($request, $options));
-
-        $level = error_reporting(0);
-        $content = file_get_contents($request->getUri()->__toString(), false, $context);
-        error_reporting($level);
-        if (false === $content) {
-            $error = error_get_last();
-
-            throw new NetworkException($request, $error['message']);
-        }
-
-        $requestBuilder = new ResponseBuilder(new MessageFactory());
-        $requestBuilder->parseHttpHeaders($this->filterHeaders((array) $http_response_header));
-        $requestBuilder->writeBody($content);
-
-        return $requestBuilder->getResponse();
-    }
-
-    /**
-     * Converts a request into an array for stream_context_create().
-     *
-     * @param RequestInterface $request A request object
-     * @param ParameterBag     $options
-     *
-     * @return array An array for stream_context_create()
-     */
-    protected function getStreamContextArray(RequestInterface $request, ParameterBag $options): array
-    {
-        $headers = $request->getHeaders();
-        unset($headers['Host']);
-        $context = [
-            'http' => [
-                // values from the request
-                'method' => $request->getMethod(),
-                'header' => implode("\r\n", HeaderConverter::toBuzzHeaders($headers)),
-                'content' => $request->getBody()->__toString(),
-                'protocol_version' => $request->getProtocolVersion(),
-
-                // values from the current client
-                'ignore_errors' => true,
-                'follow_location' => $options->get('allow_redirects') && $options->get('max_redirects') > 0,
-                'max_redirects' => $options->get('max_redirects') + 1,
-                'timeout' => $options->get('timeout'),
-            ],
-            'ssl' => [
-                'verify_peer' => $options->get('verify'),
-                'verify_host' => $options->get('verify'),
-            ],
-        ];
-
-        if (null !== $options->get('proxy')) {
-            $context['http']['proxy'] = $options->get('proxy');
-            $context['http']['request_fulluri'] = true;
-        }
-
-        return $context;
-    }
-
-    private function filterHeaders(array $headers): array
-    {
-        $filtered = [];
-        foreach ($headers as $header) {
-            if (0 === stripos($header, 'http/')) {
-                $filtered = [];
-            }
-
-            $filtered[] = $header;
-        }
-
-        return $filtered;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Client/MultiCurl.php b/vendor/kriswallsmith/buzz/lib/Client/MultiCurl.php
deleted file mode 100644
index a1ff62e0e50824b5a53a844611147b336884aa60..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Client/MultiCurl.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Client;
-
-use Buzz\Configuration\ParameterBag;
-use Buzz\Exception\ExceptionInterface;
-use Buzz\Exception\ClientException;
-use Buzz\Message\ResponseBuilder;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-use Symfony\Component\OptionsResolver\OptionsResolver;
-
-class MultiCurl extends AbstractCurl implements BatchClientInterface, BuzzClientInterface
-{
-    private $queue = [];
-
-    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($request, $response, $exception) {
-     *         if (!$exception) {
-     *             // success
-     *         } else {
-     *             // error ($error is one of the CURLE_* constants)
-     *         }
-     *     };
-     */
-    public function sendAsyncRequest(RequestInterface $request, array $options = []): void
-    {
-        $options = $this->validateOptions($options);
-
-        $this->queue[] = [$request, $options];
-    }
-
-    public function sendRequest(RequestInterface $request, array $options = []): ResponseInterface
-    {
-        $options = $this->validateOptions($options);
-        $originalCallback = $options->get('callback');
-        $responseToReturn = null;
-        $options = $options->add(['callback' => function (RequestInterface $request, ResponseInterface $response = null, ClientException $e = null) use (&$responseToReturn, $originalCallback) {
-            $responseToReturn = $response;
-            $originalCallback($request, $response, $e);
-        }]);
-
-        $this->queue[] = [$request, $options];
-        $this->flush();
-
-        return $responseToReturn;
-    }
-
-    protected function configureOptions(OptionsResolver $resolver): void
-    {
-        parent::configureOptions($resolver);
-
-        $resolver->setDefault('callback', function (RequestInterface $request, ResponseInterface $response = null, ClientException $e = null) {
-        });
-        $resolver->setAllowedTypes('callback', 'callable');
-    }
-
-    public function count(): int
-    {
-        return count($this->queue);
-    }
-
-    /**
-     * @throws ClientException
-     */
-    public function flush(): void
-    {
-        while (!empty($this->queue)) {
-            $this->proceed();
-        }
-    }
-
-    /**
-     * @throws ClientException
-     */
-    public function proceed(): void
-    {
-        if (empty($this->queue)) {
-            return;
-        }
-
-        if (!$this->curlm && false === $this->curlm = curl_multi_init()) {
-            throw new ClientException('Unable to create a new cURL multi handle');
-        }
-
-        foreach ($this->queue as $i => $queueItem) {
-            if (2 !== count($queueItem)) {
-                // We have already prepared this curl
-                continue;
-            }
-            // prepare curl handle
-            /** @var $request RequestInterface */
-            /** @var $options ParameterBag */
-            list($request, $options) = $queueItem;
-            $curl = $this->createHandle();
-            $responseBuilder = $this->prepare($curl, $request, $options);
-            $this->queue[$i][] = $curl;
-            $this->queue[$i][] = $responseBuilder;
-            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);
-
-        $exception = null;
-        // handle any completed requests
-        while ($done = curl_multi_info_read($this->curlm)) {
-            foreach (array_keys($this->queue) as $i) {
-                /** @var $request RequestInterface */
-                /** @var $options ParameterBag */
-                /** @var $responseBuilder ResponseBuilder */
-                list($request, $options, $curl, $responseBuilder) = $this->queue[$i];
-
-                if ($curl !== $done['handle']) {
-                    continue;
-                }
-
-                try {
-                    $response = null;
-                    $this->parseError($request, $done['result'], $curl);
-                    // populate the response object
-                    curl_multi_getcontent($curl);
-                    $response = $responseBuilder->getResponse();
-                } catch (ExceptionInterface $e) {
-                    if (null === $exception) {
-                        $exception = $e;
-                    }
-                }
-
-                // remove from queue
-                curl_multi_remove_handle($this->curlm, $curl);
-                $this->releaseHandle($curl);
-                unset($this->queue[$i]);
-
-                // callback
-                call_user_func($options->get('callback'), $request, $response, $exception);
-            }
-        }
-
-        // cleanup
-        if (empty($this->queue)) {
-            curl_multi_close($this->curlm);
-            $this->curlm = null;
-
-            if (null !== $exception) {
-                throw $exception;
-            }
-        }
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Configuration/ParameterBag.php b/vendor/kriswallsmith/buzz/lib/Configuration/ParameterBag.php
deleted file mode 100644
index 9cc2ce40ce13141c18164748dff9a21277c12826..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Configuration/ParameterBag.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Configuration;
-
-/**
- * A ParameterBag is a container for key/value pairs. This implementation is immutable.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-final class ParameterBag implements \IteratorAggregate, \Countable
-{
-    /**
-     * Parameter storage.
-     */
-    private $parameters;
-
-    /**
-     * @param array $parameters An array of parameters
-     */
-    public function __construct(array $parameters = [])
-    {
-        $this->parameters = $parameters;
-    }
-
-    /**
-     * Returns the parameters.
-     *
-     * @return array An array of parameters
-     */
-    public function all(): array
-    {
-        return $this->parameters;
-    }
-
-    /**
-     * Returns the parameter keys.
-     *
-     * @return array An array of parameter keys
-     */
-    public function keys(): array
-    {
-        return array_keys($this->parameters);
-    }
-
-    /**
-     * Adds parameters to the existing ones.
-     *
-     * @param array $parameters An array of parameters
-     */
-    public function add(array $parameters = []): self
-    {
-        // Make sure to merge Curl parameters
-        if (isset($this->parameters['curl'])
-            && isset($parameters['curl'])
-            && is_array($this->parameters['curl'])
-            && is_array($parameters['curl'])) {
-            $parameters['curl'] = array_replace($this->parameters['curl'], $parameters['curl']);
-        }
-
-        $newParameters = array_replace($this->parameters, $parameters);
-
-        return new self($newParameters);
-    }
-
-    /**
-     * Returns a parameter by name.
-     *
-     * @param string|int $key     The key
-     * @param mixed      $default The default value if the parameter key does not exist
-     *
-     * @return mixed
-     */
-    public function get($key, $default = null)
-    {
-        return array_key_exists($key, $this->parameters) ? $this->parameters[$key] : $default;
-    }
-
-    /**
-     * Returns true if the parameter is defined.
-     *
-     * @param string|int $key The key
-     *
-     * @return bool true if the parameter exists, false otherwise
-     */
-    public function has($key): bool
-    {
-        return array_key_exists($key, $this->parameters);
-    }
-
-    /**
-     * Returns an iterator for parameters.
-     *
-     * @return \ArrayIterator An \ArrayIterator instance
-     */
-    public function getIterator(): \ArrayIterator
-    {
-        return new \ArrayIterator($this->parameters);
-    }
-
-    /**
-     * Returns the number of parameters.
-     *
-     * @return int The number of parameters
-     */
-    public function count(): int
-    {
-        return count($this->parameters);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Exception/ClientException.php b/vendor/kriswallsmith/buzz/lib/Exception/ClientException.php
deleted file mode 100644
index 917488173cb7e80c9e65e779875843d5833ad25f..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Exception/ClientException.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Exception;
-
-use Http\Client\Exception as HTTPlugException;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class ClientException extends \RuntimeException implements ExceptionInterface, HTTPlugException
-{
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Exception/ExceptionInterface.php b/vendor/kriswallsmith/buzz/lib/Exception/ExceptionInterface.php
deleted file mode 100644
index c097bbdc1185b4c83441177b29da34ef7db9dc2f..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Exception;
-
-/**
- * Marker interface to denote exceptions thrown from the Buzz context.
- */
-interface ExceptionInterface
-{
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Exception/InvalidArgumentException.php b/vendor/kriswallsmith/buzz/lib/Exception/InvalidArgumentException.php
deleted file mode 100644
index 712cc8b08d208e00834d422ce1c11c734d84dd29..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Exception;
-
-/**
- * Thrown when an invalid argument is provided.
- */
-class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Exception/LogicException.php b/vendor/kriswallsmith/buzz/lib/Exception/LogicException.php
deleted file mode 100644
index 64c84fac2ac2b69b03461953fb4eb442e5b89a85..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Exception/LogicException.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-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/Exception/NetworkException.php b/vendor/kriswallsmith/buzz/lib/Exception/NetworkException.php
deleted file mode 100644
index 1b461d03efd014660ef2f6415e53c47651a73fa4..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Exception/NetworkException.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Exception;
-
-use Psr\Http\Client\Exception\NetworkException as PsrNetworkException;
-use Psr\Http\Message\RequestInterface;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class NetworkException extends ClientException implements PsrNetworkException
-{
-    /**
-     * @var RequestInterface
-     */
-    private $request;
-
-    public function __construct(RequestInterface $request, string $message = '', int $code = 0, \Throwable $previous = null)
-    {
-        $this->request = $request;
-        parent::__construct($message, $code, $previous);
-    }
-
-    public function getRequest(): RequestInterface
-    {
-        return $this->request;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Exception/RequestException.php b/vendor/kriswallsmith/buzz/lib/Exception/RequestException.php
deleted file mode 100644
index d15cff5ca806a27454784be713c85bb9a80c7158..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Exception/RequestException.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Exception;
-
-use Psr\Http\Client\Exception\RequestException as PsrRequestException;
-use Psr\Http\Message\RequestInterface;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class RequestException extends ClientException implements PsrRequestException
-{
-    /**
-     * @var RequestInterface
-     */
-    private $request;
-
-    public function __construct(RequestInterface $request, string $message = '', int $code = 0, \Throwable $previous = null)
-    {
-        $this->request = $request;
-        parent::__construct($message, $code, $previous);
-    }
-
-    public function getRequest(): RequestInterface
-    {
-        return $this->request;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Message/FormRequestBuilder.php b/vendor/kriswallsmith/buzz/lib/Message/FormRequestBuilder.php
deleted file mode 100644
index a9d2d5ed809dbc7851bb6e8b4abec7aa7d745e94..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Message/FormRequestBuilder.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Message;
-
-class FormRequestBuilder
-{
-    /**
-     * @var array
-     */
-    private $data;
-
-    /**
-     * @var array
-     */
-    private $files;
-
-    /**
-     * @param array $data
-     * @param array $files
-     */
-    public function __construct(array $data = [], array $files = [])
-    {
-        $this->data = $data;
-        $this->files = $files;
-    }
-
-    /**
-     * @param string $name
-     * @param string $value
-     */
-    public function addField(string $name, string $value): void
-    {
-        $this->data[$name] = $value;
-    }
-
-    /**
-     * @param string      $name
-     * @param string      $path
-     * @param string|null $contentType
-     * @param string|null $filename
-     */
-    public function addFile(string $name, string $path, string $contentType = null, string $filename = null): void
-    {
-        $this->files[$name] = [
-            'path' => $path,
-            'contentType' => $contentType,
-            'filename' => $filename,
-        ];
-    }
-
-    /**
-     * @return array
-     */
-    public function build(): array
-    {
-        $data = $this->data;
-
-        foreach ($this->files as $name => $file) {
-            $data[$name] = $file;
-        }
-
-        return $data;
-    }
-
-    /**
-     * Reset the builder.
-     */
-    public function reset(): void
-    {
-        $this->data = [];
-        $this->files = [];
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Message/HeaderConverter.php b/vendor/kriswallsmith/buzz/lib/Message/HeaderConverter.php
deleted file mode 100644
index 3cddaf4023d9de0510246e40683a78956ac71e52..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Message/HeaderConverter.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Message;
-
-/**
- * Convert between Buzz style:
- * array(
- *   'foo: bar',
- *   'baz: biz',
- * ).
- *
- * and PSR style:
- * array(
- *   'foo' => 'bar'
- *   'baz' => ['biz', 'buz'],
- * )
- *
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class HeaderConverter
-{
-    /**
-     * Convert from Buzz style headers to PSR style.
-     *
-     * @param array $headers
-     *
-     * @return array
-     */
-    public static function toBuzzHeaders(array $headers): array
-    {
-        $buzz = [];
-
-        foreach ($headers as $key => $values) {
-            if (!is_array($values)) {
-                $buzz[] = sprintf('%s: %s', $key, $values);
-            } else {
-                foreach ($values as $value) {
-                    $buzz[] = sprintf('%s: %s', $key, $value);
-                }
-            }
-        }
-
-        return $buzz;
-    }
-
-    /**
-     * Convert from PSR style headers to Buzz style.
-     *
-     * @param array $headers
-     *
-     * @return array
-     */
-    public static function toPsrHeaders(array $headers): array
-    {
-        $psr = [];
-        foreach ($headers as $header) {
-            list($key, $value) = explode(':', $header, 2);
-            $psr[trim($key)][] = trim($value);
-        }
-
-        return $psr;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Message/ResponseBuilder.php b/vendor/kriswallsmith/buzz/lib/Message/ResponseBuilder.php
deleted file mode 100644
index dcc30338ce5fb8c5483011906ad89ece5258cae0..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Message/ResponseBuilder.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Message;
-
-use Buzz\Exception\InvalidArgumentException;
-use Http\Message\ResponseFactory as HTTPlugResponseFactory;
-use Interop\Http\Factory\ResponseFactoryInterface as InteropResponseFactory;
-use Psr\Http\Message\ResponseInterface;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class ResponseBuilder
-{
-    /**
-     * @var ResponseInterface
-     */
-    private $response;
-
-    /**
-     * @param HTTPlugResponseFactory|InteropResponseFactory $responseFactory
-     */
-    public function __construct($responseFactory)
-    {
-        if (!$responseFactory instanceof HTTPlugResponseFactory && !$responseFactory instanceof InteropResponseFactory) {
-            throw new InvalidArgumentException('First parameter to ResponseBuilder must be a response factory');
-        }
-
-        $this->response = $responseFactory->createResponse();
-    }
-
-    public function setStatus(string $input): void
-    {
-        $parts = explode(' ', $input, 3);
-        if (count($parts) < 2 || 0 !== strpos(strtolower($parts[0]), 'http/')) {
-            throw new InvalidArgumentException(sprintf('"%s" is not a valid HTTP status line', $input));
-        }
-
-        $this->response = $this->response->withStatus((int) $parts[1], isset($parts[2]) ? $parts[2] : '');
-        $this->response = $this->response->withProtocolVersion((string) substr($parts[0], 5));
-    }
-
-    /**
-     * Add a single HTTP header line.
-     *
-     * @param string $input
-     */
-    public function addHeader(string $input): void
-    {
-        list($key, $value) = explode(':', $input, 2);
-        $this->response = $this->response->withAddedHeader(trim($key), trim($value));
-    }
-
-    /**
-     * Add HTTP headers. The input array is all the header lines from the HTTP message. Optionally including the
-     * status line.
-     *
-     * @param array $headers
-     */
-    public function parseHttpHeaders(array $headers): void
-    {
-        $statusLine = array_shift($headers);
-
-        try {
-            $this->setStatus($statusLine);
-        } catch (InvalidArgumentException $e) {
-            array_unshift($headers, $statusLine);
-        }
-
-        foreach ($headers as $header) {
-            $this->addHeader($header);
-        }
-    }
-
-    /**
-     * Add some content to the body. This function writes the $input to a stream.
-     *
-     * @param string $input
-     *
-     * @return int returns the number of bytes written
-     */
-    public function writeBody(string $input): int
-    {
-        return $this->response->getBody()->write($input);
-    }
-
-    public function getResponse(): ResponseInterface
-    {
-        $this->response->getBody()->rewind();
-
-        return $this->response;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Middleware/BasicAuthMiddleware.php b/vendor/kriswallsmith/buzz/lib/Middleware/BasicAuthMiddleware.php
deleted file mode 100644
index cf7db608fba1f1b5b87823f8cd2befa87d664e47..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Middleware/BasicAuthMiddleware.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Middleware;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class BasicAuthMiddleware implements MiddlewareInterface
-{
-    private $username;
-
-    private $password;
-
-    public function __construct($username, $password)
-    {
-        $this->username = $username;
-        $this->password = $password;
-    }
-
-    public function handleRequest(RequestInterface $request, callable $next)
-    {
-        $request = $request->withAddedHeader('Authorization', sprintf('Basic %s', base64_encode($this->username.':'.$this->password)));
-
-        return $next($request);
-    }
-
-    public function handleResponse(RequestInterface $request, ResponseInterface $response, callable $next)
-    {
-        return $next($request, $response);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Middleware/BearerAuthMiddleware.php b/vendor/kriswallsmith/buzz/lib/Middleware/BearerAuthMiddleware.php
deleted file mode 100644
index 8dd983da419db00d549ec1daa5c51edc7dda92a6..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Middleware/BearerAuthMiddleware.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Middleware;
-
-use Buzz\Exception\InvalidArgumentException;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class BearerAuthMiddleware implements MiddlewareInterface
-{
-    private $accessToken;
-
-    public function __construct($accessToken)
-    {
-        if (empty($accessToken)) {
-            throw new InvalidArgumentException('You must supply a non empty accessToken');
-        }
-
-        $this->accessToken = $accessToken;
-    }
-
-    public function handleRequest(RequestInterface $request, callable $next)
-    {
-        $request = $request->withAddedHeader('Authorization', sprintf('Bearer %s', $this->accessToken));
-
-        return $next($request);
-    }
-
-    public function handleResponse(RequestInterface $request, ResponseInterface $response, callable $next)
-    {
-        return $next($request, $response);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Middleware/CallbackMiddleware.php b/vendor/kriswallsmith/buzz/lib/Middleware/CallbackMiddleware.php
deleted file mode 100644
index 02c833b18e637b85d2d215f8754fd2a085d329f8..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Middleware/CallbackMiddleware.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Middleware;
-
-use Buzz\Exception\InvalidArgumentException;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class CallbackMiddleware implements MiddlewareInterface
-{
-    private $callable;
-
-    /**
-     * The callback should expect either one or two arguments, depending on
-     * whether it is receiving a pre or post send notification.
-     *
-     *     $middleware = new CallbackMiddleware(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 handleRequest(RequestInterface $request, callable $next)
-    {
-        $request = call_user_func($this->callable, $request);
-
-        return $next($request);
-    }
-
-    public function handleResponse(RequestInterface $request, ResponseInterface $response, callable $next)
-    {
-        $response = call_user_func($this->callable, $request, $response);
-
-        return $next($request, $response);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Middleware/ContentLengthMiddleware.php b/vendor/kriswallsmith/buzz/lib/Middleware/ContentLengthMiddleware.php
deleted file mode 100644
index 74177033acc4486608feabb12fc875261dae9a98..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Middleware/ContentLengthMiddleware.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Middleware;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class ContentLengthMiddleware implements MiddlewareInterface
-{
-    public function handleRequest(RequestInterface $request, callable $next)
-    {
-        $body = $request->getBody();
-
-        if (!$request->hasHeader('Content-Length')) {
-            $request = $request->withAddedHeader('Content-Length', (string) $body->getSize());
-        }
-
-        return $next($request);
-    }
-
-    public function handleResponse(RequestInterface $request, ResponseInterface $response, callable $next)
-    {
-        return $next($request, $response);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Middleware/CookieMiddleware.php b/vendor/kriswallsmith/buzz/lib/Middleware/CookieMiddleware.php
deleted file mode 100644
index 059c6742323079fe3e20231bd7cf20d6ab4a4a84..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Middleware/CookieMiddleware.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Middleware;
-
-use Buzz\Util\Cookie;
-use Buzz\Util\CookieJar;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class CookieMiddleware implements MiddlewareInterface
-{
-    private $cookieJar;
-
-    public function __construct()
-    {
-        $this->cookieJar = new CookieJar();
-    }
-
-    public function setCookies(array $cookies): void
-    {
-        $this->cookieJar->setCookies($cookies);
-    }
-
-    /**
-     * @return Cookie[]
-     */
-    public function getCookies(): array
-    {
-        return $this->cookieJar->getCookies();
-    }
-
-    /**
-     * Adds a cookie to the current cookie jar.
-     *
-     * @param Cookie $cookie A cookie object
-     */
-    public function addCookie(Cookie $cookie): void
-    {
-        $this->cookieJar->addCookie($cookie);
-    }
-
-    public function handleRequest(RequestInterface $request, callable $next)
-    {
-        $this->cookieJar->clearExpiredCookies();
-        $request = $this->cookieJar->addCookieHeaders($request);
-
-        return $next($request);
-    }
-
-    public function handleResponse(RequestInterface $request, ResponseInterface $response, callable $next)
-    {
-        $this->cookieJar->processSetCookieHeaders($request, $response);
-
-        return $next($request, $response);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Middleware/DigestAuthMiddleware.php b/vendor/kriswallsmith/buzz/lib/Middleware/DigestAuthMiddleware.php
deleted file mode 100644
index e5d7215ad7f30ebdbbb713aeeafb17c3654e17a7..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Middleware/DigestAuthMiddleware.php
+++ /dev/null
@@ -1,833 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Middleware;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class DigestAuthMiddleware implements MiddlewareInterface
-{
-    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;
-
-    /** @var string[] Quality of Protection */
-    private $qop = [];
-
-    /**
-     * 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(string $username = null, string $password = null, string $realm = null)
-    {
-        $this->setUsername($username);
-        $this->setPassword($password);
-        $this->setRealm($realm);
-        $this->setOptions(self::OPTION_QOP_AUTH_INT & self::OPTION_DISCARD_CLIENT_NONCE);
-    }
-
-    /**
-     * 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.
-     */
-    public function handleRequest(RequestInterface $request, callable $next)
-    {
-        $this->setUri($request->getUri()->getPath());
-        $this->setMethod(strtoupper($request->getMethod()));
-        $this->setEntityBody($request->getBody()->__toString());
-
-        if (null !== $header = $this->getHeader()) {
-            $request = $request->withHeader('Authorization', $header);
-        }
-
-        return $next($request);
-    }
-
-    /**
-     * 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.
-     */
-    public function handleResponse(RequestInterface $request, ResponseInterface $response, callable $next)
-    {
-        $this->parseServerHeaders($response);
-
-        return $next($request, $response);
-    }
-
-    /**
-     * Sets the password to be used to authenticate the client.
-     *
-     * @param string $password The password
-     */
-    public function setPassword(?string $password): void
-    {
-        $this->password = $password;
-    }
-
-    /**
-     * Sets the realm to be used to authenticate the client.
-     *
-     * @param string $realm The realm
-     */
-    public function setRealm(?string $realm): void
-    {
-        $this->realm = $realm;
-    }
-
-    /**
-     * Sets the username to be used to authenticate the client.
-     *
-     * @param string $username The username
-     */
-    public function setUsername(?string $username): void
-    {
-        $this->username = $username;
-    }
-
-    /**
-     * Sets the options to be used by this class.
-     *
-     * @param mixed $options a bitmask of the constants defined in this class
-     */
-    public function setOptions($options): void
-    {
-        if ($options & self::OPTION_QOP_AUTH_INT) {
-            if ($options & self::OPTION_QOP_AUTH) {
-                throw new \InvalidArgumentException('DigestAuthMiddleware: Only one value of OPTION_QOP_AUTH_INT or OPTION_QOP_AUTH may be set.');
-            }
-            $this->options = $this->options | self::OPTION_QOP_AUTH_INT;
-        } elseif ($options & self::OPTION_QOP_AUTH) {
-            $this->options = $this->options | self::OPTION_QOP_AUTH;
-        }
-
-        if ($options & self::OPTION_IGNORE_DOWNGRADE_REQUEST) {
-            $this->options = $this->options | self::OPTION_IGNORE_DOWNGRADE_REQUEST;
-        }
-
-        if ($options & self::OPTION_DISCARD_CLIENT_NONCE) {
-            $this->options = $this->options | self::OPTION_DISCARD_CLIENT_NONCE;
-        }
-    }
-
-    /**
-     * Discards the Client Nonce forcing the generation of a new Client Nonce on the next request.
-     */
-    private function discardClientNonce(): void
-    {
-        $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(): ?string
-    {
-        if (null == $this->algorithm) {
-            $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(): ?string
-    {
-        if ($this->options & self::OPTION_IGNORE_DOWNGRADE_REQUEST) {
-            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(): ?string
-    {
-        if (null == $this->clientNonce) {
-            $this->clientNonce = uniqid();
-
-            if (null == $this->nonceCount) {
-                // 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(): ?string
-    {
-        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(): ?string
-    {
-        return (string) $this->entityBody;
-    }
-
-    /**
-     * Calculates the value of HA1 according to RFC 2617 and RFC 2069.
-     *
-     * @return string|null The value of HA1
-     */
-    private function getHA1(): ?string
-    {
-        $username = $this->getUsername();
-        $password = $this->getPassword();
-        $realm = $this->getRealm();
-
-        if (($username) && ($password) && ($realm)) {
-            $algorithm = $this->getAlgorithm();
-
-            if ('MD5' === $algorithm) {
-                $A1 = "{$username}:{$realm}:{$password}";
-
-                return $this->hash($A1);
-            } elseif ('MD5-sess' === $algorithm) {
-                $nonce = $this->getNonce();
-                $cnonce = $this->getClientNonce();
-                if (($nonce) && ($cnonce)) {
-                    $A1 = $this->hash("{$username}:{$realm}:{$password}").":{$nonce}:{$cnonce}";
-
-                    return $this->hash($A1);
-                }
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Calculates the value of HA2 according to RFC 2617 and RFC 2069.
-     *
-     * @return string The value of HA2
-     */
-    private function getHA2(): ?string
-    {
-        $method = $this->getMethod();
-        $uri = $this->getUri();
-
-        if (($method) && ($uri)) {
-            $qop = $this->getQOP();
-
-            if (null === $qop || 'auth' === $qop) {
-                $A2 = "{$method}:{$uri}";
-            } elseif ('auth-int' === $qop) {
-                $entityBody = (string) $this->getEntityBody();
-                $A2 = "{$method}:{$uri}:".(string) $this->hash($entityBody);
-            } else {
-                return null;
-            }
-
-            $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(): ?string
-    {
-        if ('Digest' == $this->getAuthenticationMethod()) {
-            $username = $this->getUsername();
-            $realm = $this->getRealm();
-            $nonce = $this->getNonce();
-            $response = $this->getResponse();
-            if (($username) && ($realm) && ($nonce) && ($response)) {
-                $uri = $this->getUri();
-                $opaque = $this->getOpaque();
-                $qop = $this->getQOP();
-
-                $header = '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 & self::OPTION_DISCARD_CLIENT_NONCE) {
-                    $this->discardClientNonce();
-                }
-
-                return $header;
-            }
-        }
-        if ('Basic' == $this->getAuthenticationMethod()) {
-            $username = $this->getUsername();
-            $password = $this->getPassword();
-            if (($username) && ($password)) {
-                $header = '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(): ?string
-    {
-        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(): ?string
-    {
-        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(): ?string
-    {
-        return $this->nonceCount;
-    }
-
-    /**
-     * Returns the opaque value that was sent to us from the server.
-     *
-     * @return string the value of opaque
-     */
-    private function getOpaque(): ?string
-    {
-        return $this->opaque;
-    }
-
-    /**
-     * Returns the plaintext password for the client.
-     *
-     * @return string the value of password
-     */
-    private function getPassword(): ?string
-    {
-        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(): ?string
-    {
-        return $this->realm;
-    }
-
-    /**
-     * Calculates the value of response according to RFC 2617 and RFC 2069.
-     *
-     * @return string The value of response
-     */
-    private function getResponse(): ?string
-    {
-        $HA1 = $this->getHA1();
-        $nonce = $this->getNonce();
-        $HA2 = $this->getHA2();
-
-        if (null !== $HA1 && ($nonce) && null !== $HA2) {
-            $qop = $this->getQOP();
-
-            if (empty($qop)) {
-                $response = $this->hash("{$HA1}:{$nonce}:{$HA2}");
-
-                return $response;
-            }
-
-            $cnonce = $this->getClientNonce();
-            $nc = $this->getNonceCount();
-            if (($cnonce) && ($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(): ?string
-    {
-        // Has the server specified any options for Quality of Protection
-        if (count($this->qop) > 0) {
-            if ($this->options & self::OPTION_QOP_AUTH_INT) {
-                if (in_array('auth-int', $this->qop)) {
-                    return 'auth-int';
-                }
-                if (in_array('auth', $this->qop)) {
-                    return 'auth';
-                }
-            }
-            if ($this->options & self::OPTION_QOP_AUTH) {
-                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(): ?string
-    {
-        return $this->username;
-    }
-
-    /**
-     * Returns the uri that we are requesting access to.
-     *
-     * @return string The value of uri
-     */
-    private function getUri(): ?string
-    {
-        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): ?string
-    {
-        $algorithm = $this->getAlgorithm();
-        if (('MD5' == $algorithm) || ('MD5-sess' == $algorithm)) {
-            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
-     */
-    private function parseAuthenticationInfoHeader(string $authenticationInfo): void
-    {
-        $nameValuePairs = $this->parseNameValuePairs($authenticationInfo);
-        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(string $nameValuePairs): array
-    {
-        $parsedNameValuePairs = [];
-        $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 ResponseInterface $response
-     */
-    private function parseServerHeaders(ResponseInterface $response): void
-    {
-        // Check to see if the WWW-Authenticate header is present and if so set $authHeader
-        if (!empty($header = $response->getHeaderLine('www-authenticate'))) {
-            $this->parseWwwAuthenticateHeader($header);
-        }
-
-        // Check to see if the Authentication-Info header is present and if so set $authInfo
-        if (!empty($header = $response->getHeaderLine('authentication-info'))) {
-            $this->parseAuthenticationInfoHeader($header);
-        }
-    }
-
-    /**
-     * 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
-     */
-    private function parseWwwAuthenticateHeader(string $wwwAuthenticate): void
-    {
-        if ('Digest ' == substr($wwwAuthenticate, 0, 7)) {
-            $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 ('Basic ' == substr($wwwAuthenticate, 0, 6)) {
-            $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
-     */
-    private function setAlgorithm(string $algorithm): void
-    {
-        if (('MD5' == $algorithm) || ('MD5-sess' == $algorithm)) {
-            $this->algorithm = $algorithm;
-        } else {
-            throw new \InvalidArgumentException('DigestAuthMiddleware: 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
-     */
-    private function setAuthenticationMethod(string $authenticationMethod): void
-    {
-        if ('Digest' === $authenticationMethod || 'Basic' === $authenticationMethod) {
-            $this->authenticationMethod = $authenticationMethod;
-        } else {
-            throw new \InvalidArgumentException('DigestAuthMiddleware: 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
-     */
-    private function setDomain(string $domain): void
-    {
-        $this->domain = $domain;
-    }
-
-    /**
-     * 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)
-     */
-    private function setEntityBody(string $entityBody = null): void
-    {
-        $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
-     */
-    private function setMethod(string $method = null): void
-    {
-        if ('GET' == $method) {
-            $this->method = 'GET';
-
-            return;
-        }
-        if ('POST' == $method) {
-            $this->method = 'POST';
-
-            return;
-        }
-        if ('PUT' == $method) {
-            $this->method = 'PUT';
-
-            return;
-        }
-        if ('DELETE' == $method) {
-            $this->method = 'DELETE';
-
-            return;
-        }
-        if ('HEAD' == $method) {
-            $this->method = 'HEAD';
-
-            return;
-        }
-
-        throw new \InvalidArgumentException('DigestAuthMiddleware: Only GET,POST,PUT,DELETE,HEAD HTTP methods are currently supported.');
-    }
-
-    /**
-     * Sets the value of nonce.
-     *
-     * @param string $nonce The server nonce value
-     */
-    private function setNonce(string $nonce = null): void
-    {
-        $this->nonce = $nonce;
-    }
-
-    /**
-     * Sets the value of opaque.
-     *
-     * @param string $opaque The opaque value
-     */
-    private function setOpaque(string $opaque): void
-    {
-        $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
-     */
-    private function setQOP(array $qop = []): void
-    {
-        $this->qop = [];
-        foreach ($qop as $protection) {
-            $protection = trim($protection);
-            if ('auth-int' == $protection) {
-                $this->qop[] = 'auth-int';
-            } elseif ('auth' == $protection) {
-                $this->qop[] = 'auth';
-            } else {
-                throw new \InvalidArgumentException('DigestAuthMiddleware: Only auth-int and auth are supported Quality of Protection mechanisms.');
-            }
-        }
-    }
-
-    /**
-     * Sets the value of uri.
-     *
-     * @param string $uri The uri
-     */
-    private function setUri(string $uri = null): void
-    {
-        $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(string $str = null): ?string
-    {
-        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;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Middleware/History/Entry.php b/vendor/kriswallsmith/buzz/lib/Middleware/History/Entry.php
deleted file mode 100644
index 36a0a5d7c3352824cb19de3639963109c62bfe0b..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Middleware/History/Entry.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Middleware\History;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class Entry
-{
-    private $request;
-
-    private $response;
-
-    private $duration;
-
-    /**
-     * @param RequestInterface  $request  The request
-     * @param ResponseInterface $response The response
-     * @param null|float        $duration The duration in seconds
-     */
-    public function __construct(RequestInterface $request, ResponseInterface $response, float $duration = null)
-    {
-        $this->request = $request;
-        $this->response = $response;
-        $this->duration = $duration;
-    }
-
-    public function getRequest(): RequestInterface
-    {
-        return $this->request;
-    }
-
-    public function getResponse(): ResponseInterface
-    {
-        return $this->response;
-    }
-
-    public function getDuration(): ?float
-    {
-        return $this->duration;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Middleware/History/Journal.php b/vendor/kriswallsmith/buzz/lib/Middleware/History/Journal.php
deleted file mode 100644
index 813f770f8e20c652902225986b5045c6b5ec2862..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Middleware/History/Journal.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Middleware\History;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class Journal implements \Countable, \IteratorAggregate
-{
-    private $entries = [];
-
-    private $limit = 10;
-
-    public function __construct(int $limit = 10)
-    {
-        $this->limit = $limit;
-    }
-
-    /**
-     * Records an entry in the journal.
-     *
-     * @param RequestInterface  $request  The request
-     * @param ResponseInterface $response The response
-     * @param null|float        $duration The duration in seconds
-     */
-    public function record(RequestInterface $request, ResponseInterface $response, float $duration = null): void
-    {
-        $this->addEntry(new Entry($request, $response, $duration));
-    }
-
-    public function addEntry(Entry $entry): void
-    {
-        array_push($this->entries, $entry);
-        $this->entries = array_slice($this->entries, $this->getLimit() * -1);
-        end($this->entries);
-    }
-
-    /**
-     * @return Entry[]
-     */
-    public function getEntries(): array
-    {
-        return $this->entries;
-    }
-
-    public function getLast(): ?Entry
-    {
-        $entry = end($this->entries);
-
-        return false === $entry ? null : $entry;
-    }
-
-    public function getLastRequest(): ?RequestInterface
-    {
-        if (null === $entry = $this->getLast()) {
-            return null;
-        }
-
-        return $entry->getRequest();
-    }
-
-    public function getLastResponse(): ?ResponseInterface
-    {
-        if (null === $entry = $this->getLast()) {
-            return null;
-        }
-
-        return $entry->getResponse();
-    }
-
-    public function clear(): void
-    {
-        $this->entries = [];
-    }
-
-    public function count(): int
-    {
-        return count($this->entries);
-    }
-
-    public function setLimit(int $limit): void
-    {
-        $this->limit = $limit;
-    }
-
-    public function getLimit(): int
-    {
-        return $this->limit;
-    }
-
-    public function getIterator(): \ArrayIterator
-    {
-        return new \ArrayIterator(array_reverse($this->entries));
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Middleware/HistoryMiddleware.php b/vendor/kriswallsmith/buzz/lib/Middleware/HistoryMiddleware.php
deleted file mode 100644
index e6c1eafa7f30be0353bf8d214086fc0dae450ba0..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Middleware/HistoryMiddleware.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Middleware;
-
-use Buzz\Middleware\History\Journal;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class HistoryMiddleware implements MiddlewareInterface
-{
-    private $journal;
-
-    private $startTime;
-
-    public function __construct(Journal $journal)
-    {
-        $this->journal = $journal;
-    }
-
-    public function getJournal(): Journal
-    {
-        return $this->journal;
-    }
-
-    public function handleRequest(RequestInterface $request, callable $next)
-    {
-        $this->startTime = microtime(true);
-
-        return $next($request);
-    }
-
-    public function handleResponse(RequestInterface $request, ResponseInterface $response, callable $next)
-    {
-        $this->journal->record($request, $response, microtime(true) - $this->startTime);
-
-        return $next($request, $response);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Middleware/LoggerMiddleware.php b/vendor/kriswallsmith/buzz/lib/Middleware/LoggerMiddleware.php
deleted file mode 100644
index 79f0ea9b3edc20bae165d0a3b49e858dfae0d124..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Middleware/LoggerMiddleware.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Middleware;
-
-use Psr\Http\Message\ResponseInterface;
-use Psr\Log\LoggerInterface;
-use Psr\Log\NullLogger;
-
-class LoggerMiddleware implements MiddlewareInterface
-{
-    private $logger;
-
-    private $level;
-
-    private $prefix;
-
-    private $startTime;
-
-    /**
-     * @param LoggerInterface $logger
-     * @param string          $level
-     * @param string|null     $prefix
-     */
-    public function __construct(LoggerInterface $logger = null, $level = 'info', $prefix = null)
-    {
-        $this->logger = $logger ?: new NullLogger();
-        $this->level = $level;
-        $this->prefix = $prefix;
-    }
-
-    public function handleRequest(\Psr\Http\Message\RequestInterface $request, callable $next)
-    {
-        $this->startTime = microtime(true);
-
-        return $next($request);
-    }
-
-    public function handleResponse(\Psr\Http\Message\RequestInterface $request, ResponseInterface $response, callable $next)
-    {
-        $seconds = microtime(true) - $this->startTime;
-        $this->logger->log($this->level, sprintf('%sSent "%s %s" in %dms', $this->prefix, $request->getMethod(), $request->getUri(), round($seconds * 1000)));
-
-        return $next($request, $response);
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Middleware/MiddlewareInterface.php b/vendor/kriswallsmith/buzz/lib/Middleware/MiddlewareInterface.php
deleted file mode 100644
index d24a2fffebdcdeb3b0e31230284e442e37bca444..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Middleware/MiddlewareInterface.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Middleware;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-/**
- * A middleware gets called twice per request. One time before we send the request
- * and once after the response is received. A middleware may modify/change the
- * request and the response. Just be aware that they are immutable.
- *
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-interface MiddlewareInterface
-{
-    /**
-     * Handle a request.
-     *
-     * End this function by calling:
-     *   <code>
-     *      return $next($request);
-     *   </code
-     *
-     * @param RequestInterface $request
-     * @param callable         $next    next middleware
-     */
-    public function handleRequest(RequestInterface $request, callable $next);
-
-    /**
-     * Handle a response.
-     *
-     * End this function by calling:
-     *   <code>
-     *      return $next($request, $response);
-     *   </code
-     *
-     * @param RequestInterface $request
-     * @param callable         $next    next middleware
-     */
-    public function handleResponse(RequestInterface $request, ResponseInterface $response, callable $next);
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Util/Cookie.php b/vendor/kriswallsmith/buzz/lib/Util/Cookie.php
deleted file mode 100644
index a8f286705245814d907b2a5cc9e27daae852e07e..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Util/Cookie.php
+++ /dev/null
@@ -1,232 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Util;
-
-use Psr\Http\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 = [];
-
-    protected $createdAt;
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        $this->createdAt = time();
-    }
-
-    /**
-     * Returns true if the current cookie matches the supplied request.
-     *
-     * @param RequestInterface $request A request object
-     *
-     * @return bool
-     */
-    public function matchesRequest(RequestInterface $request): bool
-    {
-        $uri = $request->getUri();
-        // domain
-        if (!$this->matchesDomain($uri->getHost())) {
-            return false;
-        }
-
-        // path
-        if (!$this->matchesPath($uri->getPath())) {
-            return false;
-        }
-
-        // secure
-        if ($this->hasAttribute(static::ATTR_SECURE) && 'https' !== $uri->getScheme()) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Returns true of the current cookie has expired.
-     *
-     * Checks the max-age and expires attributes.
-     *
-     * @return bool Whether the current cookie has expired
-     */
-    public function isExpired(): bool
-    {
-        $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 bool
-     */
-    public function matchesDomain(string $domain): bool
-    {
-        $cookieDomain = $this->getAttribute(static::ATTR_DOMAIN);
-
-        if (0 === strpos($cookieDomain, '.')) {
-            $pattern = '/\b'.preg_quote(substr($cookieDomain, 1), '/').'$/i';
-
-            return (bool) 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 bool
-     */
-    public function matchesPath(string $path): bool
-    {
-        $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(string $header, string $issuingDomain): void
-    {
-        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();
-        if (null !== $header) {
-            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(): string
-    {
-        return $this->getName().'='.$this->getValue();
-    }
-
-    public function setName(string $name): void
-    {
-        $this->name = $name;
-    }
-
-    public function getName(): string
-    {
-        return $this->name;
-    }
-
-    public function setValue(string $value): void
-    {
-        $this->value = $value;
-    }
-
-    public function getValue(): string
-    {
-        return $this->value;
-    }
-
-    public function setAttributes(array $attributes)
-    {
-        // attributes are case insensitive
-        $this->attributes = array_change_key_case($attributes);
-    }
-
-    public function setAttribute(string $name, ?string $value): void
-    {
-        $this->attributes[strtolower($name)] = $value;
-    }
-
-    public function getAttributes(): array
-    {
-        return $this->attributes;
-    }
-
-    public function getAttribute(string $name): ?string
-    {
-        $name = strtolower($name);
-
-        if (isset($this->attributes[$name])) {
-            return $this->attributes[$name];
-        }
-
-        return null;
-    }
-
-    public function hasAttribute(string $name): bool
-    {
-        return array_key_exists($name, $this->attributes);
-    }
-
-    public function clearAttributes(): void
-    {
-        $this->setAttributes([]);
-    }
-
-    public function setCreatedAt(int $createdAt): void
-    {
-        $this->createdAt = $createdAt;
-    }
-
-    public function getCreatedAt(): int
-    {
-        return $this->createdAt;
-    }
-}
diff --git a/vendor/kriswallsmith/buzz/lib/Util/CookieJar.php b/vendor/kriswallsmith/buzz/lib/Util/CookieJar.php
deleted file mode 100644
index 6732e9019ec84aeb08bedc4fb01523abd6afcb4d..0000000000000000000000000000000000000000
--- a/vendor/kriswallsmith/buzz/lib/Util/CookieJar.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Buzz\Util;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-class CookieJar
-{
-    /** @var Cookie[] */
-    private $cookies = [];
-
-    public function clear(): void
-    {
-        $this->cookies = [];
-    }
-
-    public function setCookies(array $cookies): void
-    {
-        $this->cookies = [];
-        foreach ($cookies as $cookie) {
-            $this->addCookie($cookie);
-        }
-    }
-
-    /**
-     * @return Cookie[]
-     */
-    public function getCookies(): array
-    {
-        return $this->cookies;
-    }
-
-    /**
-     * Adds a cookie to the current cookie jar.
-     *
-     * @param Cookie $cookie A cookie object
-     */
-    public function addCookie(Cookie $cookie): void
-    {
-        $this->cookies[] = $cookie;
-    }
-
-    /**
-     * Adds Cookie headers to the supplied request.
-     *
-     * @param RequestInterface $request A request object
-     */
-    public function addCookieHeaders(RequestInterface $request): RequestInterface
-    {
-        foreach ($this->getCookies() as $cookie) {
-            if ($cookie->matchesRequest($request)) {
-                $request = $request->withHeader('Cookie', $cookie->toCookieHeader());
-            }
-        }
-
-        return $request;
-    }
-
-    /**
-     * Processes Set-Cookie headers from a request/response pair.
-     *
-     * @param RequestInterface  $request  A request object
-     * @param ResponseInterface $response A response object
-     */
-    public function processSetCookieHeaders(RequestInterface $request, ResponseInterface $response): void
-    {
-        $host = $request->getUri()->getHost();
-        foreach ($response->getHeader('Set-Cookie') as $header) {
-            $cookie = new Cookie();
-            $cookie->fromSetCookieHeader($header, $host);
-
-            $this->addCookie($cookie);
-        }
-    }
-
-    /**
-     * Removes expired cookies.
-     */
-    public function clearExpiredCookies(): void
-    {
-        $cookies = $this->getCookies();
-        foreach ($cookies as $i => $cookie) {
-            if ($cookie->isExpired()) {
-                unset($cookies[$i]);
-            }
-        }
-
-        $this->clear();
-        $this->setCookies(array_values($cookies));
-    }
-}
diff --git a/vendor/nyholm/psr7/CHANGELOG.md b/vendor/nyholm/psr7/CHANGELOG.md
deleted file mode 100644
index 7e4c2b947872899b33a3290e52c2dd1aefade3cf..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/CHANGELOG.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file, in reverse chronological order by release.
-
-## 0.3.0
-
-### Added
-
-- Return types.
-- Many `InvalidArgumentException`s are thrown when you use invalid arguments. 
-- Integration tests for `UploadedFile` and `ServerRequest`.
-
-### Changed
-
-- We dropped PHP7.0 support. 
-- PSR-17 factories have been marked as internal. They do not fall under our BC promise until PSR-17 is accepted.  
-- `UploadedFileFactory::createUploadedFile` does not accept a string file path. 
-
-## 0.2.3
-
-No changelog before this release
-
diff --git a/vendor/nyholm/psr7/README.md b/vendor/nyholm/psr7/README.md
deleted file mode 100644
index 776f1310c5dbafb62bfd2dfc605bb3f9b4d6c2de..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# PSR-7 implementation
-
-[![Latest Version](https://img.shields.io/github/release/Nyholm/psr7.svg?style=flat-square)](https://github.com/Nyholm/psr7/releases)
-[![Build Status](https://img.shields.io/travis/Nyholm/psr7/master.svg?style=flat-square)](https://travis-ci.org/Nyholm/psr7)
-[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/Nyholm/psr7.svg?style=flat-square)](https://scrutinizer-ci.com/g/Nyholm/psr7)
-[![Quality Score](https://img.shields.io/scrutinizer/g/Nyholm/psr7.svg?style=flat-square)](https://scrutinizer-ci.com/g/Nyholm/psr7)
-[![Total Downloads](https://poser.pugx.org/nyholm/psr7/downloads)](https://packagist.org/packages/nyholm/psr7)
-[![Monthly Downloads](https://poser.pugx.org/nyholm/psr7/d/monthly.png)](https://packagist.org/packages/nyholm/psr7)
-[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE)
-
-
-A super lightweight PSR-7 Http client. Very strict and very fast.
-
-| Description | Guzzle | Zend | Slim | Nyholm |
-| ---- | ------ | ---- | ---- | ------ |
-| Lines of code | 4 400 | 5 000 | 4 100 | 2 000 |
-| PHP7 | No | No | No | Yes |
-| PSR-7* | 94% | 96% | 92% | 100% |
-| PSR-17 | No | No | No | Yes |
-| HTTPlug | No | No | No | Yes |
-
-\* See https://github.com/php-http/psr7-integration-tests
\ No newline at end of file
diff --git a/vendor/nyholm/psr7/composer.json b/vendor/nyholm/psr7/composer.json
deleted file mode 100644
index a51df214a8713805895c7002fa415f68ded9afb4..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/composer.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-    "name": "nyholm/psr7",
-    "description": "A fast PHP7 implementation of PSR-7",
-    "license": "MIT",
-    "keywords": ["psr-7", "psr-17"],
-    "homepage": "http://tnyholm.se",
-    "authors": [
-        {
-            "name": "Tobias Nyholm",
-            "email": "tobias.nyholm@gmail.com"
-        }
-    ],
-    "require": {
-        "php": "^7.1",
-        "psr/http-message": "^1.0",
-        "php-http/message-factory": "^1.0",
-        "http-interop/http-factory": "^0.3"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "^7.0",
-        "php-http/psr7-integration-tests": "dev-master",
-        "http-interop/http-factory-tests": "dev-master"
-    },
-    "provide": {
-        "psr/http-message-implementation": "1.0",
-        "psr/http-factory-implementation": "1.0"
-    },
-    "autoload": {
-        "psr-4": {
-            "Nyholm\\Psr7\\": "src/"
-        }
-    },
-    "autoload-dev": {
-        "psr-4": {
-            "Tests\\Nyholm\\Psr7\\": "tests/"
-        }
-    },
-    "scripts": {
-        "test": "vendor/bin/phpunit",
-        "test-ci": "vendor/bin/phpunit --coverage-text --coverage-clover=build/coverage.xml"
-    }
-}
diff --git a/vendor/nyholm/psr7/src/Factory/MessageFactory.php b/vendor/nyholm/psr7/src/Factory/MessageFactory.php
deleted file mode 100644
index 3001b08cf02f35bb59150a16f56efd7813e3a0eb..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/Factory/MessageFactory.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7\Factory;
-
-use Interop\Http\Factory\RequestFactoryInterface;
-use Interop\Http\Factory\ResponseFactoryInterface;
-use Nyholm\Psr7\Request;
-use Nyholm\Psr7\Response;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class MessageFactory implements \Http\Message\MessageFactory, RequestFactoryInterface, ResponseFactoryInterface
-{
-    public function createRequest(
-        $method,
-        $uri,
-        array $headers = [],
-        $body = null,
-        $protocolVersion = '1.1'
-    ) {
-        return new Request($method, $uri, $headers, $body, $protocolVersion);
-    }
-
-    public function createResponse(
-        $statusCode = 200,
-        $reasonPhrase = null,
-        array $headers = [],
-        $body = null,
-        $protocolVersion = '1.1'
-    ) {
-        return new Response((int) $statusCode, $headers, $body, $protocolVersion, $reasonPhrase);
-    }
-}
diff --git a/vendor/nyholm/psr7/src/Factory/ServerRequestFactory.php b/vendor/nyholm/psr7/src/Factory/ServerRequestFactory.php
deleted file mode 100644
index e2842148ea058d32f96795855b7ed8344ed06de8..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/Factory/ServerRequestFactory.php
+++ /dev/null
@@ -1,197 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7\Factory;
-
-use InvalidArgumentException;
-use Psr\Http\Message\ServerRequestInterface;
-use Psr\Http\Message\UploadedFileInterface;
-use Interop\Http\Factory\ServerRequestFactoryInterface;
-use Nyholm\Psr7\ServerRequest;
-use Nyholm\Psr7\UploadedFile;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- * @author Martijn van der Ven <martijn@vanderven.se>
- *
- * @internal This class does not fall under our BC promise. We will adapt to changes to the http-interop/http-factory.
- * This class will be finalized when the PSR-17 is accepted.
- */
-class ServerRequestFactory implements ServerRequestFactoryInterface
-{
-    public function createServerRequest($method, $uri): ServerRequestInterface
-    {
-        return new ServerRequest($method, $uri);
-    }
-
-    public function createServerRequestFromArray(array $server): ServerRequestInterface
-    {
-        return new ServerRequest(
-            $this->getMethodFromEnvironment($server),
-            $this->getUriFromEnvironmentWithHTTP($server),
-            [],
-            null,
-            '1.1',
-            $server
-        );
-    }
-
-    /**
-     * Create a new server request from a set of arrays.
-     *
-     * @param array $server  Typically $_SERVER or similar structure.
-     * @param array $headers Typically the output of getallheaders() or similar structure.
-     * @param array $cookie  Typically $_COOKIE or similar structure.
-     * @param array $get     Typically $_GET or similar structure.
-     * @param array $post    Typically $_POST or similar structure.
-     * @param array $files   Typically $_FILES or similar structure.
-     *
-     * @throws InvalidArgumentException If no valid method or URI can be determined.
-     *
-     * @return ServerRequestInterface
-     */
-    public function createServerRequestFromArrays(
-        array $server,
-        array $headers,
-        array $cookie,
-        array $get,
-        array $post,
-        array $files
-    ): ServerRequestInterface {
-        $method = $this->getMethodFromEnvironment($server);
-        $uri = $this->getUriFromEnvironmentWithHTTP($server);
-
-        $protocol = isset($server['SERVER_PROTOCOL']) ? str_replace('HTTP/', '', $server['SERVER_PROTOCOL']) : '1.1';
-
-        $serverRequest = new ServerRequest($method, $uri, $headers, null, $protocol, $server);
-
-        return $serverRequest
-            ->withCookieParams($cookie)
-            ->withQueryParams($get)
-            ->withParsedBody($post)
-            ->withUploadedFiles(self::normalizeFiles($files));
-    }
-
-    /**
-     * Create a new server request from the current environment variables.
-     * Defaults to a GET request to minimise the risk of an InvalidArgumentException.
-     * Includes the current request headers as supplied by the server through `getallheaders()`.
-     *
-     * @throws InvalidArgumentException If no valid method or URI can be determined.
-     *
-     * @return ServerRequestInterface
-     */
-    public function createServerRequestFromGlobals(): ServerRequestInterface
-    {
-        $server = $_SERVER;
-        if (false === isset($server['REQUEST_METHOD'])) {
-            $server['REQUEST_METHOD'] = 'GET';
-        }
-        $headers = function_exists('getallheaders') ? getallheaders() : [];
-
-        return $this->createServerRequestFromArrays($_SERVER, $headers, $_COOKIE, $_GET, $_POST, $_FILES);
-    }
-
-    private function getMethodFromEnvironment(array $environment): string
-    {
-        if (false === isset($environment['REQUEST_METHOD'])) {
-            throw new InvalidArgumentException('Cannot determine HTTP method');
-        }
-
-        return $environment['REQUEST_METHOD'];
-    }
-
-    private function getUriFromEnvironmentWithHTTP(array $environment): \Psr\Http\Message\UriInterface
-    {
-        $uri = (new UriFactory())->createUriFromArray($environment);
-        if ('' === $uri->getScheme()) {
-            $uri = $uri->withScheme('http');
-        }
-
-        return $uri;
-    }
-
-    /**
-     * Return an UploadedFile instance array.
-     *
-     * @param array $files A array which respect $_FILES structure
-     *
-     * @throws InvalidArgumentException for unrecognized values
-     *
-     * @return array
-     */
-    private static function normalizeFiles(array $files): array
-    {
-        $normalized = [];
-
-        foreach ($files as $key => $value) {
-            if ($value instanceof UploadedFileInterface) {
-                $normalized[$key] = $value;
-            } elseif (is_array($value) && isset($value['tmp_name'])) {
-                $normalized[$key] = self::createUploadedFileFromSpec($value);
-            } elseif (is_array($value)) {
-                $normalized[$key] = self::normalizeFiles($value);
-
-                continue;
-            } else {
-                throw new InvalidArgumentException('Invalid value in files specification');
-            }
-        }
-
-        return $normalized;
-    }
-
-    /**
-     * Create and return an UploadedFile instance from a $_FILES specification.
-     *
-     * If the specification represents an array of values, this method will
-     * delegate to normalizeNestedFileSpec() and return that return value.
-     *
-     * @param array $value $_FILES struct
-     *
-     * @return array|UploadedFileInterface
-     */
-    private static function createUploadedFileFromSpec(array $value)
-    {
-        if (is_array($value['tmp_name'])) {
-            return self::normalizeNestedFileSpec($value);
-        }
-
-        return new UploadedFile(
-            $value['tmp_name'],
-            (int) $value['size'],
-            (int) $value['error'],
-            $value['name'],
-            $value['type']
-        );
-    }
-
-    /**
-     * Normalize an array of file specifications.
-     *
-     * Loops through all nested files and returns a normalized array of
-     * UploadedFileInterface instances.
-     *
-     * @param array $files
-     *
-     * @return UploadedFileInterface[]
-     */
-    private static function normalizeNestedFileSpec(array $files = []): array
-    {
-        $normalizedFiles = [];
-
-        foreach (array_keys($files['tmp_name']) as $key) {
-            $spec = [
-                'tmp_name' => $files['tmp_name'][$key],
-                'size' => $files['size'][$key],
-                'error' => $files['error'][$key],
-                'name' => $files['name'][$key],
-                'type' => $files['type'][$key],
-            ];
-            $normalizedFiles[$key] = self::createUploadedFileFromSpec($spec);
-        }
-
-        return $normalizedFiles;
-    }
-}
diff --git a/vendor/nyholm/psr7/src/Factory/StreamFactory.php b/vendor/nyholm/psr7/src/Factory/StreamFactory.php
deleted file mode 100644
index 300b22f9703b6d5f0c3992d6fb0f48dde226e1d3..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/Factory/StreamFactory.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7\Factory;
-
-use Interop\Http\Factory\StreamFactoryInterface;
-use Nyholm\Psr7\Stream;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class StreamFactory implements \Http\Message\StreamFactory, StreamFactoryInterface
-{
-    public function createStream($body = null)
-    {
-        if ($body instanceof StreamInterface) {
-            return $body;
-        }
-
-        if ('resource' === gettype($body)) {
-            return Stream::createFromResource($body);
-        }
-
-        return Stream::create(null === $body ? '' : $body);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @internal This function does not fall under our BC promise. We will adapt to changes to the http-interop/http-factory.
-     * This class will be finalized when the PSR-17 is accepted.
-     */
-    public function createStreamFromFile($file, $mode = 'r')
-    {
-        $resource = fopen($file, $mode);
-
-        return Stream::createFromResource($resource);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @internal This function does not fall under our BC promise. We will adapt to changes to the http-interop/http-factory.
-     * This class will be finalized when the PSR-17 is accepted.
-     */
-    public function createStreamFromResource($resource)
-    {
-        return Stream::createFromResource($resource);
-    }
-
-    /**
-     * Copy the contents of a stream into another stream until the given number
-     * of bytes have been read.
-     *
-     * @author Michael Dowling and contributors to guzzlehttp/psr7
-     *
-     * @param StreamInterface $source Stream to read from
-     * @param StreamInterface $dest   Stream to write to
-     * @param int             $maxLen Maximum number of bytes to read. Pass -1
-     *                                to read the entire stream
-     *
-     * @throws \RuntimeException on error
-     */
-    public function copyToStream(StreamInterface $source, StreamInterface $dest, $maxLen = -1)
-    {
-        if ($maxLen === -1) {
-            while (!$source->eof()) {
-                if (!$dest->write($source->read(1048576))) {
-                    break;
-                }
-            }
-
-            return;
-        }
-
-        $bytes = 0;
-        while (!$source->eof()) {
-            $buf = $source->read($maxLen - $bytes);
-            if (!($len = strlen($buf))) {
-                break;
-            }
-            $bytes += $len;
-            $dest->write($buf);
-            if ($bytes == $maxLen) {
-                break;
-            }
-        }
-    }
-}
diff --git a/vendor/nyholm/psr7/src/Factory/UploadedFileFactory.php b/vendor/nyholm/psr7/src/Factory/UploadedFileFactory.php
deleted file mode 100644
index fd7feb12d149bc86de357868210fc007255cf258..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/Factory/UploadedFileFactory.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7\Factory;
-
-use Interop\Http\Factory\UploadedFileFactoryInterface;
-use Nyholm\Psr7\UploadedFile;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- *
- * @internal This class does not fall under our BC promise. We will adapt to changes to the http-interop/http-factory.
- * This class will be finalized when the PSR-17 is accepted.
- */
-class UploadedFileFactory implements UploadedFileFactoryInterface
-{
-    public function createUploadedFile(
-        $file,
-        $size = null,
-        $error = \UPLOAD_ERR_OK,
-        $clientFilename = null,
-        $clientMediaType = null
-    ) {
-        if (is_string($file)) {
-            // This is string content
-            $content = $file;
-            $file = fopen(sys_get_temp_dir().'/'.uniqid('uploaded_file', true), 'w+');
-            fwrite($file, $content);
-        }
-
-        if (null === $size) {
-            $stats = fstat($file);
-            $size = $stats['size'];
-        }
-
-        return new UploadedFile($file, $size, $error, $clientFilename, $clientMediaType);
-    }
-}
diff --git a/vendor/nyholm/psr7/src/Factory/UriFactory.php b/vendor/nyholm/psr7/src/Factory/UriFactory.php
deleted file mode 100644
index 734a73404f6d5e5b87e6584f55e237dd7ae84333..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/Factory/UriFactory.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7\Factory;
-
-use Interop\Http\Factory\UriFactoryInterface;
-use Nyholm\Psr7\Uri;
-use Psr\Http\Message\UriInterface;
-
-/**
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class UriFactory implements \Http\Message\UriFactory, UriFactoryInterface
-{
-    public function createUri($uri = ''): UriInterface
-    {
-        if ($uri instanceof UriInterface) {
-            return $uri;
-        }
-
-        return new Uri($uri);
-    }
-
-    /**
-     * Create a new uri from server variable.
-     *
-     * @param array $server Typically $_SERVER or similar structure.
-     *
-     * @return UriInterface
-     */
-    public function createUriFromArray(array $server): UriInterface
-    {
-        $uri = new Uri('');
-
-        if (isset($server['REQUEST_SCHEME'])) {
-            $uri = $uri->withScheme($server['REQUEST_SCHEME']);
-        } elseif (isset($server['HTTPS'])) {
-            $uri = $uri->withScheme('on' === $server['HTTPS'] ? 'https' : 'http');
-        }
-
-        if (isset($server['HTTP_HOST'])) {
-            $uri = $uri->withHost($server['HTTP_HOST']);
-        } elseif (isset($server['SERVER_NAME'])) {
-            $uri = $uri->withHost($server['SERVER_NAME']);
-        }
-
-        if (isset($server['SERVER_PORT'])) {
-            $uri = $uri->withPort($server['SERVER_PORT']);
-        }
-
-        if (isset($server['REQUEST_URI'])) {
-            $uri = $uri->withPath(current(explode('?', $server['REQUEST_URI'])));
-        }
-
-        if (isset($server['QUERY_STRING'])) {
-            $uri = $uri->withQuery($server['QUERY_STRING']);
-        }
-
-        return $uri;
-    }
-}
diff --git a/vendor/nyholm/psr7/src/Httplug/DiscoveryStrategy.php b/vendor/nyholm/psr7/src/Httplug/DiscoveryStrategy.php
deleted file mode 100644
index dfc8645791786b97cfd74e104da93862d56facfb..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/Httplug/DiscoveryStrategy.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-namespace Nyholm\Psr7\Httplug;
-
-use Http\Discovery\Strategy\DiscoveryStrategy as HttplugDiscoveryStrategy;
-use Nyholm\Psr7\Factory\MessageFactory;
-use Nyholm\Psr7\Factory\StreamFactory;
-use Nyholm\Psr7\Factory\UriFactory;
-
-/**
- * A discovery strategy to use our factories with HTTPlug auto discovery.
- *
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class DiscoveryStrategy implements HttplugDiscoveryStrategy
-{
-    /**
-     * @var array
-     */
-    private static $classes = [
-        'Http\Message\MessageFactory' => [
-            ['class' => MessageFactory::class],
-        ],
-        'Http\Message\StreamFactory' => [
-            ['class' => StreamFactory::class],
-        ],
-        'Http\Message\UriFactory' => [
-            ['class' => UriFactory::class],
-        ],
-    ];
-
-    /**
-     * {@inheritdoc}
-     */
-    public static function getCandidates($type)
-    {
-        if (isset(self::$classes[$type])) {
-            return self::$classes[$type];
-        }
-
-        return [];
-    }
-}
diff --git a/vendor/nyholm/psr7/src/MessageTrait.php b/vendor/nyholm/psr7/src/MessageTrait.php
deleted file mode 100644
index e2e7e3347561644d3a3415e56ef1dacfc0d378f4..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/MessageTrait.php
+++ /dev/null
@@ -1,218 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7;
-
-use Nyholm\Psr7\Factory\StreamFactory;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Trait implementing functionality common to requests and responses.
- *
- * @author Michael Dowling and contributors to guzzlehttp/psr7
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-trait MessageTrait
-{
-    /** @var array Map of all registered headers, as original name => array of values */
-    private $headers = [];
-
-    /** @var array Map of lowercase header name => original name at registration */
-    private $headerNames = [];
-
-    /** @var string */
-    private $protocol = '1.1';
-
-    /** @var StreamInterface */
-    private $stream;
-
-    public function getProtocolVersion(): string
-    {
-        return $this->protocol;
-    }
-
-    public function withProtocolVersion($version): self
-    {
-        if ($this->protocol === $version) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->protocol = $version;
-
-        return $new;
-    }
-
-    public function getHeaders(): array
-    {
-        return $this->headers;
-    }
-
-    public function hasHeader($header): bool
-    {
-        return isset($this->headerNames[strtolower($header)]);
-    }
-
-    public function getHeader($header): array
-    {
-        $header = strtolower($header);
-
-        if (!isset($this->headerNames[$header])) {
-            return [];
-        }
-
-        $header = $this->headerNames[$header];
-
-        return $this->headers[$header];
-    }
-
-    public function getHeaderLine($header): string
-    {
-        return implode(', ', $this->getHeader($header));
-    }
-
-    public function withHeader($header, $value): self
-    {
-        if (!is_array($value)) {
-            $value = [$value];
-        } elseif (empty($value)) {
-            throw new \InvalidArgumentException('Header values must be non-empty strings');
-        }
-
-        if (!is_string($header) || empty($header)) {
-            throw new \InvalidArgumentException('Header name must be non-empty strings');
-        }
-
-        foreach ($value as $v) {
-            if (!is_string($v) || '' === trim($v)) {
-                throw new \InvalidArgumentException('Header values must be non-empty strings');
-            }
-        }
-
-        $value = $this->trimHeaderValues($value);
-        $normalized = strtolower($header);
-
-        $new = clone $this;
-        if (isset($new->headerNames[$normalized])) {
-            unset($new->headers[$new->headerNames[$normalized]]);
-        }
-        $new->headerNames[$normalized] = $header;
-        $new->headers[$header] = $value;
-
-        return $new;
-    }
-
-    public function withAddedHeader($header, $value): self
-    {
-        if (!is_array($value)) {
-            $value = [$value];
-        } elseif (!empty($value)) {
-            $value = array_values($value);
-        } else {
-            throw new \InvalidArgumentException('Header values must be non-empty strings');
-        }
-
-        if (!is_string($header) || empty($header)) {
-            throw new \InvalidArgumentException('Header name must be non-empty strings');
-        }
-
-        foreach ($value as $v) {
-            if (!is_string($v) || '' === trim($v)) {
-                throw new \InvalidArgumentException('Header values must be non-empty strings');
-            }
-        }
-
-        $value = $this->trimHeaderValues($value);
-        $normalized = strtolower($header);
-
-        $new = clone $this;
-        if (isset($new->headerNames[$normalized])) {
-            $header = $this->headerNames[$normalized];
-            $new->headers[$header] = array_merge($this->headers[$header], $value);
-        } else {
-            $new->headerNames[$normalized] = $header;
-            $new->headers[$header] = $value;
-        }
-
-        return $new;
-    }
-
-    public function withoutHeader($header): self
-    {
-        $normalized = strtolower($header);
-
-        if (!isset($this->headerNames[$normalized])) {
-            return $this;
-        }
-
-        $header = $this->headerNames[$normalized];
-
-        $new = clone $this;
-        unset($new->headers[$header], $new->headerNames[$normalized]);
-
-        return $new;
-    }
-
-    public function getBody(): StreamInterface
-    {
-        if (!$this->stream) {
-            $this->stream = (new StreamFactory())->createStream('');
-        }
-
-        return $this->stream;
-    }
-
-    public function withBody(StreamInterface $body): self
-    {
-        if ($body === $this->stream) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->stream = $body;
-
-        return $new;
-    }
-
-    private function setHeaders(array $headers): void
-    {
-        $this->headerNames = $this->headers = [];
-        foreach ($headers as $header => $value) {
-            if (!is_array($value)) {
-                $value = [$value];
-            }
-
-            $value = $this->trimHeaderValues($value);
-            $normalized = strtolower($header);
-            if (isset($this->headerNames[$normalized])) {
-                $header = $this->headerNames[$normalized];
-                $this->headers[$header] = array_merge($this->headers[$header], $value);
-            } else {
-                $this->headerNames[$normalized] = $header;
-                $this->headers[$header] = $value;
-            }
-        }
-    }
-
-    /**
-     * Trims whitespace from the header values.
-     *
-     * Spaces and tabs ought to be excluded by parsers when extracting the field value from a header field.
-     *
-     * header-field = field-name ":" OWS field-value OWS
-     * OWS          = *( SP / HTAB )
-     *
-     * @param string[] $values Header values
-     *
-     * @return string[] Trimmed header values
-     *
-     * @see https://tools.ietf.org/html/rfc7230#section-3.2.4
-     */
-    private function trimHeaderValues(array $values): array
-    {
-        return array_map(function ($value) {
-            return trim($value, " \t");
-        }, $values);
-    }
-}
diff --git a/vendor/nyholm/psr7/src/Request.php b/vendor/nyholm/psr7/src/Request.php
deleted file mode 100644
index 7da695fa4c309a1f2fa3647c07a8b32c39ca3b0e..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/Request.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7;
-
-use InvalidArgumentException;
-use Nyholm\Psr7\Factory\StreamFactory;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\StreamInterface;
-use Psr\Http\Message\UriInterface;
-
-/**
- * @author Michael Dowling and contributors to guzzlehttp/psr7
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class Request implements RequestInterface
-{
-    use MessageTrait;
-
-    /** @var string */
-    private $method;
-
-    /** @var null|string */
-    private $requestTarget;
-
-    /** @var null|UriInterface */
-    private $uri;
-
-    /**
-     * @param string                               $method  HTTP method
-     * @param string|UriInterface                  $uri     URI
-     * @param array                                $headers Request headers
-     * @param string|null|resource|StreamInterface $body    Request body
-     * @param string                               $version Protocol version
-     */
-    public function __construct(
-        $method,
-        $uri,
-        array $headers = [],
-        $body = null,
-        $version = '1.1'
-    ) {
-        if (!($uri instanceof UriInterface)) {
-            $uri = new Uri($uri);
-        }
-
-        $this->method = $method;
-        $this->uri = $uri;
-        $this->setHeaders($headers);
-        $this->protocol = $version;
-
-        if (!$this->hasHeader('Host')) {
-            $this->updateHostFromUri();
-        }
-
-        if ('' !== $body && null !== $body) {
-            $this->stream = (new StreamFactory())->createStream($body);
-        }
-    }
-
-    public function getRequestTarget(): string
-    {
-        if (null !== $this->requestTarget) {
-            return $this->requestTarget;
-        }
-
-        $target = $this->uri->getPath();
-        if ('' == $target) {
-            $target = '/';
-        }
-        if ('' != $this->uri->getQuery()) {
-            $target .= '?'.$this->uri->getQuery();
-        }
-
-        return $target;
-    }
-
-    public function withRequestTarget($requestTarget): self
-    {
-        if (preg_match('#\s#', $requestTarget)) {
-            throw new InvalidArgumentException('Invalid request target provided; cannot contain whitespace');
-        }
-
-        $new = clone $this;
-        $new->requestTarget = $requestTarget;
-
-        return $new;
-    }
-
-    public function getMethod(): string
-    {
-        return $this->method;
-    }
-
-    public function withMethod($method): self
-    {
-        if (!is_string($method)) {
-            throw new \InvalidArgumentException('Method must be a string');
-        }
-
-        $new = clone $this;
-        $new->method = $method;
-
-        return $new;
-    }
-
-    public function getUri(): UriInterface
-    {
-        return $this->uri;
-    }
-
-    public function withUri(UriInterface $uri, $preserveHost = false): self
-    {
-        if ($uri === $this->uri) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->uri = $uri;
-
-        if (!$preserveHost || !$this->hasHeader('Host')) {
-            $new->updateHostFromUri();
-        }
-
-        return $new;
-    }
-
-    private function updateHostFromUri(): void
-    {
-        $host = $this->uri->getHost();
-
-        if ('' == $host) {
-            return;
-        }
-
-        if (null !== ($port = $this->uri->getPort())) {
-            $host .= ':'.$port;
-        }
-
-        if (isset($this->headerNames['host'])) {
-            $header = $this->headerNames['host'];
-        } else {
-            $header = 'Host';
-            $this->headerNames['host'] = 'Host';
-        }
-        // Ensure Host is the first header.
-        // See: http://tools.ietf.org/html/rfc7230#section-5.4
-        $this->headers = [$header => [$host]] + $this->headers;
-    }
-}
diff --git a/vendor/nyholm/psr7/src/Response.php b/vendor/nyholm/psr7/src/Response.php
deleted file mode 100644
index 6bea99e26421f505fff11254083f8adea25ff031..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/Response.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7;
-
-use Nyholm\Psr7\Factory\StreamFactory;
-use Psr\Http\Message\ResponseInterface;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * @author Michael Dowling and contributors to guzzlehttp/psr7
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class Response implements ResponseInterface
-{
-    use MessageTrait;
-
-    /** @var array Map of standard HTTP status code/reason phrases */
-    private static $phrases = [
-        100 => 'Continue',
-        101 => 'Switching Protocols',
-        102 => 'Processing',
-        200 => 'OK',
-        201 => 'Created',
-        202 => 'Accepted',
-        203 => 'Non-Authoritative Information',
-        204 => 'No Content',
-        205 => 'Reset Content',
-        206 => 'Partial Content',
-        207 => 'Multi-status',
-        208 => 'Already Reported',
-        300 => 'Multiple Choices',
-        301 => 'Moved Permanently',
-        302 => 'Found',
-        303 => 'See Other',
-        304 => 'Not Modified',
-        305 => 'Use Proxy',
-        306 => 'Switch Proxy',
-        307 => 'Temporary Redirect',
-        400 => 'Bad Request',
-        401 => 'Unauthorized',
-        402 => 'Payment Required',
-        403 => 'Forbidden',
-        404 => 'Not Found',
-        405 => 'Method Not Allowed',
-        406 => 'Not Acceptable',
-        407 => 'Proxy Authentication Required',
-        408 => 'Request Time-out',
-        409 => 'Conflict',
-        410 => 'Gone',
-        411 => 'Length Required',
-        412 => 'Precondition Failed',
-        413 => 'Request Entity Too Large',
-        414 => 'Request-URI Too Large',
-        415 => 'Unsupported Media Type',
-        416 => 'Requested range not satisfiable',
-        417 => 'Expectation Failed',
-        418 => 'I\'m a teapot',
-        422 => 'Unprocessable Entity',
-        423 => 'Locked',
-        424 => 'Failed Dependency',
-        425 => 'Unordered Collection',
-        426 => 'Upgrade Required',
-        428 => 'Precondition Required',
-        429 => 'Too Many Requests',
-        431 => 'Request Header Fields Too Large',
-        451 => 'Unavailable For Legal Reasons',
-        500 => 'Internal Server Error',
-        501 => 'Not Implemented',
-        502 => 'Bad Gateway',
-        503 => 'Service Unavailable',
-        504 => 'Gateway Time-out',
-        505 => 'HTTP Version not supported',
-        506 => 'Variant Also Negotiates',
-        507 => 'Insufficient Storage',
-        508 => 'Loop Detected',
-        511 => 'Network Authentication Required',
-    ];
-
-    /** @var string */
-    private $reasonPhrase = '';
-
-    /** @var int */
-    private $statusCode = 200;
-
-    /**
-     * @param int                                  $status  Status code
-     * @param array                                $headers Response headers
-     * @param string|null|resource|StreamInterface $body    Response body
-     * @param string                               $version Protocol version
-     * @param string|null                          $reason  Reason phrase (when empty a default will be used based on the status code)
-     */
-    public function __construct(
-        int $status = 200,
-        array $headers = [],
-        $body = null,
-        string $version = '1.1',
-        $reason = null
-    ) {
-        $this->statusCode = (int) $status;
-
-        if ('' !== $body && null !== $body) {
-            $this->stream = (new StreamFactory())->createStream($body);
-        }
-
-        $this->setHeaders($headers);
-        if (null === $reason && isset(self::$phrases[$this->statusCode])) {
-            $this->reasonPhrase = self::$phrases[$status];
-        } else {
-            $this->reasonPhrase = (string) $reason;
-        }
-
-        $this->protocol = $version;
-    }
-
-    public function getStatusCode(): int
-    {
-        return $this->statusCode;
-    }
-
-    public function getReasonPhrase(): string
-    {
-        return $this->reasonPhrase;
-    }
-
-    public function withStatus($code, $reasonPhrase = ''): self
-    {
-        if (!is_int($code) && !is_string($code)) {
-            throw new \InvalidArgumentException('Status code has to be an integer');
-        }
-
-        $code = (int) $code;
-        if ($code < 100 || $code > 599) {
-            throw new \InvalidArgumentException('Status code has to be an integer between 100 and 599');
-        }
-
-        $new = clone $this;
-        $new->statusCode = (int) $code;
-        if ('' == $reasonPhrase && isset(self::$phrases[$new->statusCode])) {
-            $reasonPhrase = self::$phrases[$new->statusCode];
-        }
-        $new->reasonPhrase = $reasonPhrase;
-
-        return $new;
-    }
-}
diff --git a/vendor/nyholm/psr7/src/ServerRequest.php b/vendor/nyholm/psr7/src/ServerRequest.php
deleted file mode 100644
index a959e0f98fa2d5f2750494c605ae249267c1a652..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/ServerRequest.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7;
-
-use Psr\Http\Message\ServerRequestInterface;
-use Psr\Http\Message\StreamInterface;
-use Psr\Http\Message\UploadedFileInterface;
-use Psr\Http\Message\UriInterface;
-
-/**
- * @author Michael Dowling and contributors to guzzlehttp/psr7
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class ServerRequest extends Request implements ServerRequestInterface
-{
-    /** @var array */
-    private $attributes = [];
-
-    /** @var array */
-    private $cookieParams = [];
-
-    /** @var null|array|object */
-    private $parsedBody;
-
-    /** @var array */
-    private $queryParams = [];
-
-    /** @var array */
-    private $serverParams;
-
-    /** @var UploadedFileInterface[] */
-    private $uploadedFiles = [];
-
-    /**
-     * @param string                               $method       HTTP method
-     * @param string|UriInterface                  $uri          URI
-     * @param array                                $headers      Request headers
-     * @param string|null|resource|StreamInterface $body         Request body
-     * @param string                               $version      Protocol version
-     * @param array                                $serverParams Typically the $_SERVER superglobal
-     */
-    public function __construct(
-        $method,
-        $uri,
-        array $headers = [],
-        $body = null,
-        $version = '1.1',
-        array $serverParams = []
-    ) {
-        $this->serverParams = $serverParams;
-
-        parent::__construct($method, $uri, $headers, $body, $version);
-    }
-
-    public function getServerParams(): array
-    {
-        return $this->serverParams;
-    }
-
-    public function getUploadedFiles(): array
-    {
-        return $this->uploadedFiles;
-    }
-
-    public function withUploadedFiles(array $uploadedFiles)
-    {
-        $new = clone $this;
-        $new->uploadedFiles = $uploadedFiles;
-
-        return $new;
-    }
-
-    public function getCookieParams(): array
-    {
-        return $this->cookieParams;
-    }
-
-    public function withCookieParams(array $cookies)
-    {
-        $new = clone $this;
-        $new->cookieParams = $cookies;
-
-        return $new;
-    }
-
-    public function getQueryParams(): array
-    {
-        return $this->queryParams;
-    }
-
-    public function withQueryParams(array $query)
-    {
-        $new = clone $this;
-        $new->queryParams = $query;
-
-        return $new;
-    }
-
-    public function getParsedBody()
-    {
-        return $this->parsedBody;
-    }
-
-    public function withParsedBody($data)
-    {
-        if (!is_array($data) && !is_object($data) && null !== $data) {
-            throw new \InvalidArgumentException('First parameter to withParsedBody MUST be object, array or null');
-        }
-
-        $new = clone $this;
-        $new->parsedBody = $data;
-
-        return $new;
-    }
-
-    public function getAttributes(): array
-    {
-        return $this->attributes;
-    }
-
-    public function getAttribute($attribute, $default = null)
-    {
-        if (false === array_key_exists($attribute, $this->attributes)) {
-            return $default;
-        }
-
-        return $this->attributes[$attribute];
-    }
-
-    public function withAttribute($attribute, $value): self
-    {
-        $new = clone $this;
-        $new->attributes[$attribute] = $value;
-
-        return $new;
-    }
-
-    public function withoutAttribute($attribute): self
-    {
-        if (false === array_key_exists($attribute, $this->attributes)) {
-            return $this;
-        }
-
-        $new = clone $this;
-        unset($new->attributes[$attribute]);
-
-        return $new;
-    }
-}
diff --git a/vendor/nyholm/psr7/src/Stream.php b/vendor/nyholm/psr7/src/Stream.php
deleted file mode 100644
index 64881c3784573e9843bf041c40102ca27f89661b..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/Stream.php
+++ /dev/null
@@ -1,257 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * @author Michael Dowling and contributors to guzzlehttp/psr7
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class Stream implements StreamInterface
-{
-    /** @var resource A resource reference */
-    private $stream;
-
-    /** @var bool */
-    private $seekable;
-
-    /** @var bool */
-    private $readable;
-
-    /** @var bool */
-    private $writable;
-
-    /** @var array|mixed|null|void */
-    private $uri;
-
-    /** @var int */
-    private $size;
-
-    /** @var array Hash of readable and writable stream types */
-    private static $readWriteHash = [
-        'read' => [
-            'r' => true, 'w+' => true, 'r+' => true, 'x+' => true, 'c+' => true,
-            'rb' => true, 'w+b' => true, 'r+b' => true, 'x+b' => true,
-            'c+b' => true, 'rt' => true, 'w+t' => true, 'r+t' => true,
-            'x+t' => true, 'c+t' => true, 'a+' => true,
-        ],
-        'write' => [
-            'w' => true, 'w+' => true, 'rw' => true, 'r+' => true, 'x+' => true,
-            'c+' => true, 'wb' => true, 'w+b' => true, 'r+b' => true,
-            'x+b' => true, 'c+b' => true, 'w+t' => true, 'r+t' => true,
-            'x+t' => true, 'c+t' => true, 'a' => true, 'a+' => true,
-        ],
-    ];
-
-    private function __construct()
-    {
-    }
-
-    /**
-     * @param resource $resource
-     *
-     * @return Stream
-     */
-    public static function createFromResource($resource): self
-    {
-        if (!is_resource($resource)) {
-            throw new \InvalidArgumentException('Stream must be a resource');
-        }
-
-        $obj = new self();
-        $obj->stream = $resource;
-        $meta = stream_get_meta_data($obj->stream);
-        $obj->seekable = $meta['seekable'];
-        $obj->readable = isset(self::$readWriteHash['read'][$meta['mode']]);
-        $obj->writable = isset(self::$readWriteHash['write'][$meta['mode']]);
-        $obj->uri = $obj->getMetadata('uri');
-
-        return $obj;
-    }
-
-    /**
-     * @param string $content
-     *
-     * @return Stream
-     */
-    public static function create(string $content): self
-    {
-        $resource = fopen('php://temp', 'rw+');
-        $stream = self::createFromResource($resource);
-        $stream->write($content);
-
-        return $stream;
-    }
-
-    /**
-     * Closes the stream when the destructed.
-     */
-    public function __destruct()
-    {
-        $this->close();
-    }
-
-    public function __toString(): string
-    {
-        try {
-            if ($this->isSeekable()) {
-                $this->seek(0);
-            }
-
-            return $this->getContents();
-        } catch (\Exception $e) {
-            return '';
-        }
-    }
-
-    public function close(): void
-    {
-        if (isset($this->stream)) {
-            if (is_resource($this->stream)) {
-                fclose($this->stream);
-            }
-            $this->detach();
-        }
-    }
-
-    public function detach()
-    {
-        if (!isset($this->stream)) {
-            return null;
-        }
-
-        $result = $this->stream;
-        unset($this->stream);
-        $this->size = $this->uri = null;
-        $this->readable = $this->writable = $this->seekable = false;
-
-        return $result;
-    }
-
-    public function getSize(): ?int
-    {
-        if (null !== $this->size) {
-            return $this->size;
-        }
-
-        if (!isset($this->stream)) {
-            return null;
-        }
-
-        // Clear the stat cache if the stream has a URI
-        if ($this->uri) {
-            clearstatcache(true, $this->uri);
-        }
-
-        $stats = fstat($this->stream);
-        if (isset($stats['size'])) {
-            $this->size = $stats['size'];
-
-            return $this->size;
-        }
-
-        return null;
-    }
-
-    public function tell(): int
-    {
-        $result = ftell($this->stream);
-
-        if (false === $result) {
-            throw new \RuntimeException('Unable to determine stream position');
-        }
-
-        return $result;
-    }
-
-    public function eof(): bool
-    {
-        return !$this->stream || feof($this->stream);
-    }
-
-    public function isSeekable(): bool
-    {
-        return $this->seekable;
-    }
-
-    public function seek($offset, $whence = SEEK_SET): void
-    {
-        if (!$this->seekable) {
-            throw new \RuntimeException('Stream is not seekable');
-        } elseif (fseek($this->stream, $offset, $whence) === -1) {
-            throw new \RuntimeException('Unable to seek to stream position '.$offset.' with whence '.var_export($whence, true));
-        }
-    }
-
-    public function rewind(): void
-    {
-        $this->seek(0);
-    }
-
-    public function isWritable(): bool
-    {
-        return $this->writable;
-    }
-
-    public function write($string): int
-    {
-        if (!$this->writable) {
-            throw new \RuntimeException('Cannot write to a non-writable stream');
-        }
-
-        // We can't know the size after writing anything
-        $this->size = null;
-        $result = fwrite($this->stream, $string);
-
-        if (false === $result) {
-            throw new \RuntimeException('Unable to write to stream');
-        }
-
-        return $result;
-    }
-
-    public function isReadable(): bool
-    {
-        return $this->readable;
-    }
-
-    public function read($length): string
-    {
-        if (!$this->readable) {
-            throw new \RuntimeException('Cannot read from non-readable stream');
-        }
-
-        return fread($this->stream, $length);
-    }
-
-    public function getContents(): string
-    {
-        if (!isset($this->stream)) {
-            throw new \RuntimeException('Unable to read stream contents');
-        }
-
-        $contents = stream_get_contents($this->stream);
-
-        if (false === $contents) {
-            throw new \RuntimeException('Unable to read stream contents');
-        }
-
-        return $contents;
-    }
-
-    public function getMetadata($key = null)
-    {
-        if (!isset($this->stream)) {
-            return $key ? null : [];
-        } elseif (null === $key) {
-            return stream_get_meta_data($this->stream);
-        }
-
-        $meta = stream_get_meta_data($this->stream);
-
-        return isset($meta[$key]) ? $meta[$key] : null;
-    }
-}
diff --git a/vendor/nyholm/psr7/src/UploadedFile.php b/vendor/nyholm/psr7/src/UploadedFile.php
deleted file mode 100644
index 3c1f7af14a60b2357332c17dafb9a09461367a3b..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/UploadedFile.php
+++ /dev/null
@@ -1,234 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7;
-
-use InvalidArgumentException;
-use Nyholm\Psr7\Factory\StreamFactory;
-use Psr\Http\Message\StreamInterface;
-use Psr\Http\Message\UploadedFileInterface;
-use RuntimeException;
-
-/**
- * @author Michael Dowling and contributors to guzzlehttp/psr7
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class UploadedFile implements UploadedFileInterface
-{
-    /** @var int[] */
-    private static $errors = [
-        UPLOAD_ERR_OK, UPLOAD_ERR_INI_SIZE, UPLOAD_ERR_FORM_SIZE, UPLOAD_ERR_PARTIAL, UPLOAD_ERR_NO_FILE,
-        UPLOAD_ERR_NO_TMP_DIR, UPLOAD_ERR_CANT_WRITE, UPLOAD_ERR_EXTENSION,
-    ];
-
-    /** @var string */
-    private $clientFilename;
-
-    /** @var string */
-    private $clientMediaType;
-
-    /** @var int */
-    private $error;
-
-    /** @var null|string */
-    private $file;
-
-    /** @var bool */
-    private $moved = false;
-
-    /** @var null|int */
-    private $size;
-
-    /** @var null|StreamInterface */
-    private $stream;
-
-    /**
-     * @param StreamInterface|string|resource $streamOrFile
-     * @param int                             $size
-     * @param int                             $errorStatus
-     * @param string|null                     $clientFilename
-     * @param string|null                     $clientMediaType
-     */
-    public function __construct(
-        $streamOrFile,
-        $size,
-        $errorStatus,
-        $clientFilename = null,
-        $clientMediaType = null
-    ) {
-        $this->setError($errorStatus);
-        $this->setSize($size);
-        $this->setClientFilename($clientFilename);
-        $this->setClientMediaType($clientMediaType);
-
-        if ($this->isOk()) {
-            $this->setStreamOrFile($streamOrFile);
-        }
-    }
-
-    /**
-     * Depending on the value set file or stream variable.
-     *
-     * @param mixed $streamOrFile
-     *
-     * @throws InvalidArgumentException
-     */
-    private function setStreamOrFile($streamOrFile): void
-    {
-        if (is_string($streamOrFile)) {
-            $this->file = $streamOrFile;
-        } elseif (is_resource($streamOrFile)) {
-            $this->stream = Stream::createFromResource($streamOrFile);
-        } elseif ($streamOrFile instanceof StreamInterface) {
-            $this->stream = $streamOrFile;
-        } else {
-            throw new InvalidArgumentException('Invalid stream or file provided for UploadedFile');
-        }
-    }
-
-    /**
-     * @param int $error
-     *
-     * @throws InvalidArgumentException
-     */
-    private function setError($error): void
-    {
-        if (false === is_int($error)) {
-            throw new InvalidArgumentException('Upload file error status must be an integer');
-        }
-
-        if (false === in_array($error, self::$errors)) {
-            throw new InvalidArgumentException('Invalid error status for UploadedFile');
-        }
-
-        $this->error = $error;
-    }
-
-    /**
-     * @param int $size
-     *
-     * @throws InvalidArgumentException
-     */
-    private function setSize($size): void
-    {
-        if (false === is_int($size)) {
-            throw new InvalidArgumentException('Upload file size must be an integer');
-        }
-
-        $this->size = $size;
-    }
-
-    private function isStringOrNull($param): bool
-    {
-        return in_array(gettype($param), ['string', 'NULL']);
-    }
-
-    private function isStringNotEmpty($param): bool
-    {
-        return is_string($param) && false === empty($param);
-    }
-
-    private function setClientFilename($clientFilename): void
-    {
-        if (false === $this->isStringOrNull($clientFilename)) {
-            throw new InvalidArgumentException('Upload file client filename must be a string or null');
-        }
-
-        $this->clientFilename = $clientFilename;
-    }
-
-    private function setClientMediaType($clientMediaType): void
-    {
-        if (false === $this->isStringOrNull($clientMediaType)) {
-            throw new InvalidArgumentException('Upload file client media type must be a string or null');
-        }
-
-        $this->clientMediaType = $clientMediaType;
-    }
-
-    /**
-     * @return bool Return true if there is no upload error.
-     */
-    private function isOk(): bool
-    {
-        return UPLOAD_ERR_OK === $this->error;
-    }
-
-    /**
-     * @throws RuntimeException if is moved or not ok
-     */
-    private function validateActive(): void
-    {
-        if (false === $this->isOk()) {
-            throw new RuntimeException('Cannot retrieve stream due to upload error');
-        }
-
-        if ($this->moved) {
-            throw new RuntimeException('Cannot retrieve stream after it has already been moved');
-        }
-    }
-
-    public function getStream(): StreamInterface
-    {
-        $this->validateActive();
-
-        if ($this->stream instanceof StreamInterface) {
-            return $this->stream;
-        }
-
-        $resource = fopen($this->file, 'r');
-
-        return Stream::createFromResource($resource);
-    }
-
-    public function moveTo($targetPath): void
-    {
-        $this->validateActive();
-
-        if (false === $this->isStringNotEmpty($targetPath)) {
-            throw new InvalidArgumentException('Invalid path provided for move operation; must be a non-empty string');
-        }
-
-        if (null !== $this->file) {
-            $this->moved = 'cli' == php_sapi_name()
-                ? rename($this->file, $targetPath)
-                : move_uploaded_file($this->file, $targetPath);
-        } else {
-            $stream = $this->getStream();
-            if ($stream->isSeekable()) {
-                $stream->rewind();
-            }
-            (new StreamFactory())->copyToStream(
-                $stream,
-                Stream::createFromResource(fopen($targetPath, 'w'))
-            );
-
-            $this->moved = true;
-        }
-
-        if (false === $this->moved) {
-            throw new RuntimeException(sprintf('Uploaded file could not be moved to %s', $targetPath));
-        }
-    }
-
-    public function getSize(): ?int
-    {
-        return $this->size;
-    }
-
-    public function getError(): int
-    {
-        return $this->error;
-    }
-
-    public function getClientFilename(): ?string
-    {
-        return $this->clientFilename;
-    }
-
-    public function getClientMediaType(): ?string
-    {
-        return $this->clientMediaType;
-    }
-}
diff --git a/vendor/nyholm/psr7/src/Uri.php b/vendor/nyholm/psr7/src/Uri.php
deleted file mode 100644
index e202293001f8285944b1237750f81f0f6064ece5..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/src/Uri.php
+++ /dev/null
@@ -1,413 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nyholm\Psr7;
-
-use Psr\Http\Message\UriInterface;
-
-/**
- * PSR-7 URI implementation.
- *
- * @author Michael Dowling
- * @author Tobias Schultze
- * @author Matthew Weier O'Phinney
- * @author Tobias Nyholm <tobias.nyholm@gmail.com>
- */
-class Uri implements UriInterface
-{
-    private static $schemes = [
-        'http' => 80,
-        'https' => 443,
-    ];
-
-    private static $charUnreserved = 'a-zA-Z0-9_\-\.~';
-
-    private static $charSubDelims = '!\$&\'\(\)\*\+,;=';
-
-    /** @var string Uri scheme. */
-    private $scheme = '';
-
-    /** @var string Uri user info. */
-    private $userInfo = '';
-
-    /** @var string Uri host. */
-    private $host = '';
-
-    /** @var int|null Uri port. */
-    private $port;
-
-    /** @var string Uri path. */
-    private $path = '';
-
-    /** @var string Uri query string. */
-    private $query = '';
-
-    /** @var string Uri fragment. */
-    private $fragment = '';
-
-    /**
-     * @param string $uri
-     */
-    public function __construct($uri = '')
-    {
-        if ('' != $uri) {
-            $parts = parse_url($uri);
-            if (false === $parts) {
-                throw new \InvalidArgumentException("Unable to parse URI: $uri");
-            }
-
-            $this->applyParts($parts);
-        }
-    }
-
-    public function __toString(): string
-    {
-        return self::createUriString(
-            $this->scheme,
-            $this->getAuthority(),
-            $this->path,
-            $this->query,
-            $this->fragment
-        );
-    }
-
-    public function getScheme(): string
-    {
-        return $this->scheme;
-    }
-
-    public function getAuthority(): string
-    {
-        if ('' == $this->host) {
-            return '';
-        }
-
-        $authority = $this->host;
-        if ('' != $this->userInfo) {
-            $authority = $this->userInfo.'@'.$authority;
-        }
-
-        if (null !== $this->port) {
-            $authority .= ':'.$this->port;
-        }
-
-        return $authority;
-    }
-
-    public function getUserInfo(): string
-    {
-        return $this->userInfo;
-    }
-
-    public function getHost(): string
-    {
-        return $this->host;
-    }
-
-    public function getPort(): ?int
-    {
-        return $this->port;
-    }
-
-    public function getPath(): string
-    {
-        return $this->path;
-    }
-
-    public function getQuery(): string
-    {
-        return $this->query;
-    }
-
-    public function getFragment(): string
-    {
-        return $this->fragment;
-    }
-
-    public function withScheme($scheme): self
-    {
-        $scheme = $this->filterScheme($scheme);
-
-        if ($this->scheme === $scheme) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->scheme = $scheme;
-        $new->port = $new->filterPort($new->port);
-
-        return $new;
-    }
-
-    public function withUserInfo($user, $password = null): self
-    {
-        $info = $user;
-        if ('' != $password) {
-            $info .= ':'.$password;
-        }
-
-        if ($this->userInfo === $info) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->userInfo = $info;
-
-        return $new;
-    }
-
-    public function withHost($host): self
-    {
-        $host = $this->filterHost($host);
-
-        if ($this->host === $host) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->host = $host;
-
-        return $new;
-    }
-
-    public function withPort($port): self
-    {
-        $port = $this->filterPort($port);
-
-        if ($this->port === $port) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->port = $port;
-
-        return $new;
-    }
-
-    public function withPath($path): self
-    {
-        $path = $this->filterPath($path);
-
-        if ($this->path === $path) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->path = $path;
-
-        return $new;
-    }
-
-    public function withQuery($query): self
-    {
-        $query = $this->filterQueryAndFragment($query);
-
-        if ($this->query === $query) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->query = $query;
-
-        return $new;
-    }
-
-    public function withFragment($fragment): self
-    {
-        $fragment = $this->filterQueryAndFragment($fragment);
-
-        if ($this->fragment === $fragment) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->fragment = $fragment;
-
-        return $new;
-    }
-
-    /**
-     * Apply parse_url parts to a URI.
-     *
-     * @param array $parts Array of parse_url parts to apply
-     */
-    private function applyParts(array $parts): void
-    {
-        $this->scheme = isset($parts['scheme']) ? $this->filterScheme($parts['scheme']) : '';
-        $this->userInfo = isset($parts['user']) ? $parts['user'] : '';
-        $this->host = isset($parts['host']) ? $this->filterHost($parts['host']) : '';
-        $this->port = isset($parts['port']) ? $this->filterPort($parts['port']) : null;
-        $this->path = isset($parts['path']) ? $this->filterPath($parts['path']) : '';
-        $this->query = isset($parts['query']) ? $this->filterQueryAndFragment($parts['query']) : '';
-        $this->fragment = isset($parts['fragment']) ? $this->filterQueryAndFragment($parts['fragment']) : '';
-        if (isset($parts['pass'])) {
-            $this->userInfo .= ':'.$parts['pass'];
-        }
-    }
-
-    /**
-     * Create a URI string from its various parts.
-     *
-     * @param string $scheme
-     * @param string $authority
-     * @param string $path
-     * @param string $query
-     * @param string $fragment
-     *
-     * @return string
-     */
-    private static function createUriString(string $scheme, string $authority, string $path, string $query, string $fragment): string
-    {
-        $uri = '';
-        if ('' != $scheme) {
-            $uri .= $scheme.':';
-        }
-
-        if ('' != $authority) {
-            $uri .= '//'.$authority;
-        }
-
-        if ('' != $path) {
-            if ('/' !== $path[0]) {
-                if ('' != $authority) {
-                    // If the path is rootless and an authority is present, the path MUST be prefixed by "/"
-                    $path = '/'.$path;
-                }
-            } elseif (isset($path[1]) && '/' === $path[1]) {
-                if ('' == $authority) {
-                    // If the path is starting with more than one "/" and no authority is present, the
-                    // starting slashes MUST be reduced to one.
-                    $path = '/'.ltrim($path, '/');
-                }
-            }
-
-            $uri .= $path;
-        }
-
-        if ('' != $query) {
-            $uri .= '?'.$query;
-        }
-
-        if ('' != $fragment) {
-            $uri .= '#'.$fragment;
-        }
-
-        return $uri;
-    }
-
-    /**
-     * Is a given port non-standard for the current scheme?
-     *
-     * @param string $scheme
-     * @param int    $port
-     *
-     * @return bool
-     */
-    private static function isNonStandardPort(string $scheme, int $port): bool
-    {
-        return !isset(self::$schemes[$scheme]) || $port !== self::$schemes[$scheme];
-    }
-
-    /**
-     * @param string $scheme
-     *
-     * @throws \InvalidArgumentException If the scheme is invalid
-     *
-     * @return string
-     */
-    private function filterScheme($scheme): string
-    {
-        if (!is_string($scheme)) {
-            throw new \InvalidArgumentException('Scheme must be a string');
-        }
-
-        return strtolower($scheme);
-    }
-
-    /**
-     * @param string $host
-     *
-     * @throws \InvalidArgumentException If the host is invalid
-     *
-     * @return string
-     */
-    private function filterHost($host): string
-    {
-        if (!is_string($host)) {
-            throw new \InvalidArgumentException('Host must be a string');
-        }
-
-        return strtolower($host);
-    }
-
-    /**
-     * @param int|null $port
-     *
-     * @throws \InvalidArgumentException If the port is invalid
-     *
-     * @return int|string|null
-     */
-    private function filterPort($port): ?int
-    {
-        if (null === $port) {
-            return null;
-        }
-
-        $port = (int) $port;
-        if (1 > $port || 0xffff < $port) {
-            throw new \InvalidArgumentException(sprintf('Invalid port: %d. Must be between 1 and 65535', $port));
-        }
-
-        return self::isNonStandardPort($this->scheme, $port) ? $port : null;
-    }
-
-    /**
-     * Filters the path of a URI.
-     *
-     * @param string $path
-     *
-     * @throws \InvalidArgumentException If the path is invalid
-     *
-     * @return string
-     */
-    private function filterPath($path): string
-    {
-        if (!is_string($path)) {
-            throw new \InvalidArgumentException('Path must be a string');
-        }
-
-        return preg_replace_callback(
-            '/(?:[^'.self::$charUnreserved.self::$charSubDelims.'%:@\/]++|%(?![A-Fa-f0-9]{2}))/',
-            [$this, 'rawurlencodeMatchZero'],
-            $path
-        );
-    }
-
-    /**
-     * Filters the query string or fragment of a URI.
-     *
-     * @param string $str
-     *
-     * @throws \InvalidArgumentException If the query or fragment is invalid
-     *
-     * @return string
-     */
-    private function filterQueryAndFragment($str): string
-    {
-        if (!is_string($str)) {
-            throw new \InvalidArgumentException('Query and fragment must be a string');
-        }
-
-        return preg_replace_callback(
-            '/(?:[^'.self::$charUnreserved.self::$charSubDelims.'%:@\/\?]++|%(?![A-Fa-f0-9]{2}))/',
-            [$this, 'rawurlencodeMatchZero'],
-            $str
-        );
-    }
-
-    private function rawurlencodeMatchZero(array $match): string
-    {
-        return rawurlencode($match[0]);
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/Integration/RequestTest.php b/vendor/nyholm/psr7/tests/Integration/RequestTest.php
deleted file mode 100644
index 50a99dc6a8a4e5484f74b50c0014e6a804d7ebad..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/Integration/RequestTest.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7\Integration;
-
-use Http\Psr7Test\RequestIntegrationTest;
-use Nyholm\Psr7\Request;
-
-class RequestTest extends RequestIntegrationTest
-{
-    public function createSubject()
-    {
-        return new Request('GET', '/');
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/Integration/ResponseTest.php b/vendor/nyholm/psr7/tests/Integration/ResponseTest.php
deleted file mode 100644
index 3a8c23c75cd1db541d829123b3c29f4f0f56654e..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/Integration/ResponseTest.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7\Integration;
-
-use Http\Psr7Test\ResponseIntegrationTest;
-use Nyholm\Psr7\Response;
-
-class ResponseTest extends ResponseIntegrationTest
-{
-    public function createSubject()
-    {
-        return new Response();
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/Integration/ServerRequestTest.php b/vendor/nyholm/psr7/tests/Integration/ServerRequestTest.php
deleted file mode 100644
index ab260e5c3829f9535708029d0b6d71a6bc06134f..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/Integration/ServerRequestTest.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7\Integration;
-
-use Http\Psr7Test\ServerRequestIntegrationTest;
-use Nyholm\Psr7\Factory\ServerRequestFactory;
-
-class ServerRequestTest extends ServerRequestIntegrationTest
-{
-    public function createSubject()
-    {
-        $_SERVER['REQUEST_METHOD'] = 'GET';
-
-        return (new ServerRequestFactory())->createServerRequestFromArray($_SERVER);
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/Integration/StreamTest.php b/vendor/nyholm/psr7/tests/Integration/StreamTest.php
deleted file mode 100644
index 92a39d662f11be58bb238ed2d04fb8aa1d6b0c4f..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/Integration/StreamTest.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7\Integration;
-
-use Http\Psr7Test\StreamIntegrationTest;
-use Nyholm\Psr7\Factory\StreamFactory;
-
-class StreamTest extends StreamIntegrationTest
-{
-    public function createStream($data)
-    {
-        return (new StreamFactory())->createStream($data);
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/Integration/UploadedFileTest.php b/vendor/nyholm/psr7/tests/Integration/UploadedFileTest.php
deleted file mode 100644
index 1e454a731c682de34d4156dc8ac77e38b14dfcbe..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/Integration/UploadedFileTest.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7\Integration;
-
-use Http\Psr7Test\UploadedFileIntegrationTest;
-use Nyholm\Psr7\Factory\UploadedFileFactory;
-
-class UploadedFileTest extends UploadedFileIntegrationTest
-{
-    public function createSubject()
-    {
-        return (new UploadedFileFactory())->createUploadedFile('writing to tempfile');
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/Integration/UriTest.php b/vendor/nyholm/psr7/tests/Integration/UriTest.php
deleted file mode 100644
index 01fb12c1bc72d93527dafe8f72ab8fb2e675c114..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/Integration/UriTest.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7\Integration;
-
-use Http\Psr7Test\UriIntegrationTest;
-use Nyholm\Psr7\Factory\UriFactory;
-
-class UriTest extends UriIntegrationTest
-{
-    public function createUri($uri)
-    {
-        return (new UriFactory())->createUri($uri);
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/RequestTest.php b/vendor/nyholm/psr7/tests/RequestTest.php
deleted file mode 100644
index 1e39767531a5f0f79120daeb178bc46d91514e86..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/RequestTest.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7;
-
-use Nyholm\Psr7\Request;
-use Nyholm\Psr7\Uri;
-use PHPUnit\Framework\TestCase;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * @covers \Nyholm\Psr7\Request
- */
-class RequestTest extends TestCase
-{
-    public function testRequestUriMayBeString()
-    {
-        $r = new Request('GET', '/');
-        $this->assertEquals('/', (string) $r->getUri());
-    }
-
-    public function testRequestUriMayBeUri()
-    {
-        $uri = new Uri('/');
-        $r = new Request('GET', $uri);
-        $this->assertSame($uri, $r->getUri());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testValidateRequestUri()
-    {
-        new Request('GET', '///');
-    }
-
-    public function testCanConstructWithBody()
-    {
-        $r = new Request('GET', '/', [], 'baz');
-        $this->assertInstanceOf('Psr\Http\Message\StreamInterface', $r->getBody());
-        $this->assertEquals('baz', (string) $r->getBody());
-    }
-
-    public function testNullBody()
-    {
-        $r = new Request('GET', '/', [], null);
-        $this->assertInstanceOf('Psr\Http\Message\StreamInterface', $r->getBody());
-        $this->assertSame('', (string) $r->getBody());
-    }
-
-    public function testFalseyBody()
-    {
-        $r = new Request('GET', '/', [], '0');
-        $this->assertInstanceOf('Psr\Http\Message\StreamInterface', $r->getBody());
-        $this->assertSame('0', (string) $r->getBody());
-    }
-
-    public function testConstructorDoesNotReadStreamBody()
-    {
-        $body = $this->getMockBuilder(StreamInterface::class)->getMock();
-        $body->expects($this->never())
-            ->method('__toString');
-
-        $r = new Request('GET', '/', [], $body);
-        $this->assertSame($body, $r->getBody());
-    }
-
-    public function testWithUri()
-    {
-        $r1 = new Request('GET', '/');
-        $u1 = $r1->getUri();
-        $u2 = new Uri('http://www.example.com');
-        $r2 = $r1->withUri($u2);
-        $this->assertNotSame($r1, $r2);
-        $this->assertSame($u2, $r2->getUri());
-        $this->assertSame($u1, $r1->getUri());
-    }
-
-    public function testSameInstanceWhenSameUri()
-    {
-        $r1 = new Request('GET', 'http://foo.com');
-        $r2 = $r1->withUri($r1->getUri());
-        $this->assertSame($r1, $r2);
-    }
-
-    public function testWithRequestTarget()
-    {
-        $r1 = new Request('GET', '/');
-        $r2 = $r1->withRequestTarget('*');
-        $this->assertEquals('*', $r2->getRequestTarget());
-        $this->assertEquals('/', $r1->getRequestTarget());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testRequestTargetDoesNotAllowSpaces()
-    {
-        $r1 = new Request('GET', '/');
-        $r1->withRequestTarget('/foo bar');
-    }
-
-    public function testRequestTargetDefaultsToSlash()
-    {
-        $r1 = new Request('GET', '');
-        $this->assertEquals('/', $r1->getRequestTarget());
-        $r2 = new Request('GET', '*');
-        $this->assertEquals('*', $r2->getRequestTarget());
-        $r3 = new Request('GET', 'http://foo.com/bar baz/');
-        $this->assertEquals('/bar%20baz/', $r3->getRequestTarget());
-    }
-
-    public function testBuildsRequestTarget()
-    {
-        $r1 = new Request('GET', 'http://foo.com/baz?bar=bam');
-        $this->assertEquals('/baz?bar=bam', $r1->getRequestTarget());
-    }
-
-    public function testBuildsRequestTargetWithFalseyQuery()
-    {
-        $r1 = new Request('GET', 'http://foo.com/baz?0');
-        $this->assertEquals('/baz?0', $r1->getRequestTarget());
-    }
-
-    public function testHostIsAddedFirst()
-    {
-        $r = new Request('GET', 'http://foo.com/baz?bar=bam', ['Foo' => 'Bar']);
-        $this->assertEquals([
-            'Host' => ['foo.com'],
-            'Foo' => ['Bar'],
-        ], $r->getHeaders());
-    }
-
-    public function testCanGetHeaderAsCsv()
-    {
-        $r = new Request('GET', 'http://foo.com/baz?bar=bam', [
-            'Foo' => ['a', 'b', 'c'],
-        ]);
-        $this->assertEquals('a, b, c', $r->getHeaderLine('Foo'));
-        $this->assertEquals('', $r->getHeaderLine('Bar'));
-    }
-
-    public function testHostIsNotOverwrittenWhenPreservingHost()
-    {
-        $r = new Request('GET', 'http://foo.com/baz?bar=bam', ['Host' => 'a.com']);
-        $this->assertEquals(['Host' => ['a.com']], $r->getHeaders());
-        $r2 = $r->withUri(new Uri('http://www.foo.com/bar'), true);
-        $this->assertEquals('a.com', $r2->getHeaderLine('Host'));
-    }
-
-    public function testOverridesHostWithUri()
-    {
-        $r = new Request('GET', 'http://foo.com/baz?bar=bam');
-        $this->assertEquals(['Host' => ['foo.com']], $r->getHeaders());
-        $r2 = $r->withUri(new Uri('http://www.baz.com/bar'));
-        $this->assertEquals('www.baz.com', $r2->getHeaderLine('Host'));
-    }
-
-    public function testAggregatesHeaders()
-    {
-        $r = new Request('GET', '', [
-            'ZOO' => 'zoobar',
-            'zoo' => ['foobar', 'zoobar'],
-        ]);
-        $this->assertEquals(['ZOO' => ['zoobar', 'foobar', 'zoobar']], $r->getHeaders());
-        $this->assertEquals('zoobar, foobar, zoobar', $r->getHeaderLine('zoo'));
-    }
-
-    public function testAddsPortToHeader()
-    {
-        $r = new Request('GET', 'http://foo.com:8124/bar');
-        $this->assertEquals('foo.com:8124', $r->getHeaderLine('host'));
-    }
-
-    public function testAddsPortToHeaderAndReplacePreviousPort()
-    {
-        $r = new Request('GET', 'http://foo.com:8124/bar');
-        $r = $r->withUri(new Uri('http://foo.com:8125/bar'));
-        $this->assertEquals('foo.com:8125', $r->getHeaderLine('host'));
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/ResponseTest.php b/vendor/nyholm/psr7/tests/ResponseTest.php
deleted file mode 100644
index a0e22ac64d19d90fa5b79abb4e6d0e5888237ee8..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/ResponseTest.php
+++ /dev/null
@@ -1,249 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7;
-
-use Nyholm\Psr7\Response;
-use PHPUnit\Framework\TestCase;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * @covers \Nyholm\Psr7\MessageTrait
- * @covers \Nyholm\Psr7\Response
- */
-class ResponseTest extends TestCase
-{
-    public function testDefaultConstructor()
-    {
-        $r = new Response();
-        $this->assertSame(200, $r->getStatusCode());
-        $this->assertSame('1.1', $r->getProtocolVersion());
-        $this->assertSame('OK', $r->getReasonPhrase());
-        $this->assertSame([], $r->getHeaders());
-        $this->assertInstanceOf('Psr\Http\Message\StreamInterface', $r->getBody());
-        $this->assertSame('', (string) $r->getBody());
-    }
-
-    public function testCanConstructWithStatusCode()
-    {
-        $r = new Response(404);
-        $this->assertSame(404, $r->getStatusCode());
-        $this->assertSame('Not Found', $r->getReasonPhrase());
-    }
-
-    public function testConstructorDoesNotReadStreamBody()
-    {
-        $body = $this->getMockBuilder(StreamInterface::class)->getMock();
-        $body->expects($this->never())
-            ->method('__toString');
-
-        $r = new Response(200, [], $body);
-        $this->assertSame($body, $r->getBody());
-    }
-
-    public function testStatusCanBeNumericString()
-    {
-        $r = new Response('404');
-        $r2 = $r->withStatus('201');
-        $this->assertSame(404, $r->getStatusCode());
-        $this->assertSame('Not Found', $r->getReasonPhrase());
-        $this->assertSame(201, $r2->getStatusCode());
-        $this->assertSame('Created', $r2->getReasonPhrase());
-    }
-
-    public function testCanConstructWithHeaders()
-    {
-        $r = new Response(200, ['Foo' => 'Bar']);
-        $this->assertSame(['Foo' => ['Bar']], $r->getHeaders());
-        $this->assertSame('Bar', $r->getHeaderLine('Foo'));
-        $this->assertSame(['Bar'], $r->getHeader('Foo'));
-    }
-
-    public function testCanConstructWithHeadersAsArray()
-    {
-        $r = new Response(200, [
-            'Foo' => ['baz', 'bar'],
-        ]);
-        $this->assertSame(['Foo' => ['baz', 'bar']], $r->getHeaders());
-        $this->assertSame('baz, bar', $r->getHeaderLine('Foo'));
-        $this->assertSame(['baz', 'bar'], $r->getHeader('Foo'));
-    }
-
-    public function testCanConstructWithBody()
-    {
-        $r = new Response(200, [], 'baz');
-        $this->assertInstanceOf('Psr\Http\Message\StreamInterface', $r->getBody());
-        $this->assertSame('baz', (string) $r->getBody());
-    }
-
-    public function testNullBody()
-    {
-        $r = new Response(200, [], null);
-        $this->assertInstanceOf('Psr\Http\Message\StreamInterface', $r->getBody());
-        $this->assertSame('', (string) $r->getBody());
-    }
-
-    public function testFalseyBody()
-    {
-        $r = new Response(200, [], '0');
-        $this->assertInstanceOf('Psr\Http\Message\StreamInterface', $r->getBody());
-        $this->assertSame('0', (string) $r->getBody());
-    }
-
-    public function testCanConstructWithReason()
-    {
-        $r = new Response(200, [], null, '1.1', 'bar');
-        $this->assertSame('bar', $r->getReasonPhrase());
-
-        $r = new Response(200, [], null, '1.1', '0');
-        $this->assertSame('0', $r->getReasonPhrase(), 'Falsey reason works');
-    }
-
-    public function testCanConstructWithProtocolVersion()
-    {
-        $r = new Response(200, [], null, '1000');
-        $this->assertSame('1000', $r->getProtocolVersion());
-    }
-
-    public function testWithStatusCodeAndNoReason()
-    {
-        $r = (new Response())->withStatus(201);
-        $this->assertSame(201, $r->getStatusCode());
-        $this->assertSame('Created', $r->getReasonPhrase());
-    }
-
-    public function testWithStatusCodeAndReason()
-    {
-        $r = (new Response())->withStatus(201, 'Foo');
-        $this->assertSame(201, $r->getStatusCode());
-        $this->assertSame('Foo', $r->getReasonPhrase());
-
-        $r = (new Response())->withStatus(201, '0');
-        $this->assertSame(201, $r->getStatusCode());
-        $this->assertSame('0', $r->getReasonPhrase(), 'Falsey reason works');
-    }
-
-    public function testWithProtocolVersion()
-    {
-        $r = (new Response())->withProtocolVersion('1000');
-        $this->assertSame('1000', $r->getProtocolVersion());
-    }
-
-    public function testSameInstanceWhenSameProtocol()
-    {
-        $r = new Response();
-        $this->assertSame($r, $r->withProtocolVersion('1.1'));
-    }
-
-    public function testWithBody()
-    {
-        $b = (new \Nyholm\Psr7\Factory\StreamFactory())->createStream('0');
-        $r = (new Response())->withBody($b);
-        $this->assertInstanceOf('Psr\Http\Message\StreamInterface', $r->getBody());
-        $this->assertSame('0', (string) $r->getBody());
-    }
-
-    public function testSameInstanceWhenSameBody()
-    {
-        $r = new Response();
-        $b = $r->getBody();
-        $this->assertSame($r, $r->withBody($b));
-    }
-
-    public function testWithHeader()
-    {
-        $r = new Response(200, ['Foo' => 'Bar']);
-        $r2 = $r->withHeader('baZ', 'Bam');
-        $this->assertSame(['Foo' => ['Bar']], $r->getHeaders());
-        $this->assertSame(['Foo' => ['Bar'], 'baZ' => ['Bam']], $r2->getHeaders());
-        $this->assertSame('Bam', $r2->getHeaderLine('baz'));
-        $this->assertSame(['Bam'], $r2->getHeader('baz'));
-    }
-
-    public function testWithHeaderAsArray()
-    {
-        $r = new Response(200, ['Foo' => 'Bar']);
-        $r2 = $r->withHeader('baZ', ['Bam', 'Bar']);
-        $this->assertSame(['Foo' => ['Bar']], $r->getHeaders());
-        $this->assertSame(['Foo' => ['Bar'], 'baZ' => ['Bam', 'Bar']], $r2->getHeaders());
-        $this->assertSame('Bam, Bar', $r2->getHeaderLine('baz'));
-        $this->assertSame(['Bam', 'Bar'], $r2->getHeader('baz'));
-    }
-
-    public function testWithHeaderReplacesDifferentCase()
-    {
-        $r = new Response(200, ['Foo' => 'Bar']);
-        $r2 = $r->withHeader('foO', 'Bam');
-        $this->assertSame(['Foo' => ['Bar']], $r->getHeaders());
-        $this->assertSame(['foO' => ['Bam']], $r2->getHeaders());
-        $this->assertSame('Bam', $r2->getHeaderLine('foo'));
-        $this->assertSame(['Bam'], $r2->getHeader('foo'));
-    }
-
-    public function testWithAddedHeader()
-    {
-        $r = new Response(200, ['Foo' => 'Bar']);
-        $r2 = $r->withAddedHeader('foO', 'Baz');
-        $this->assertSame(['Foo' => ['Bar']], $r->getHeaders());
-        $this->assertSame(['Foo' => ['Bar', 'Baz']], $r2->getHeaders());
-        $this->assertSame('Bar, Baz', $r2->getHeaderLine('foo'));
-        $this->assertSame(['Bar', 'Baz'], $r2->getHeader('foo'));
-    }
-
-    public function testWithAddedHeaderAsArray()
-    {
-        $r = new Response(200, ['Foo' => 'Bar']);
-        $r2 = $r->withAddedHeader('foO', ['Baz', 'Bam']);
-        $this->assertSame(['Foo' => ['Bar']], $r->getHeaders());
-        $this->assertSame(['Foo' => ['Bar', 'Baz', 'Bam']], $r2->getHeaders());
-        $this->assertSame('Bar, Baz, Bam', $r2->getHeaderLine('foo'));
-        $this->assertSame(['Bar', 'Baz', 'Bam'], $r2->getHeader('foo'));
-    }
-
-    public function testWithAddedHeaderThatDoesNotExist()
-    {
-        $r = new Response(200, ['Foo' => 'Bar']);
-        $r2 = $r->withAddedHeader('nEw', 'Baz');
-        $this->assertSame(['Foo' => ['Bar']], $r->getHeaders());
-        $this->assertSame(['Foo' => ['Bar'], 'nEw' => ['Baz']], $r2->getHeaders());
-        $this->assertSame('Baz', $r2->getHeaderLine('new'));
-        $this->assertSame(['Baz'], $r2->getHeader('new'));
-    }
-
-    public function testWithoutHeaderThatExists()
-    {
-        $r = new Response(200, ['Foo' => 'Bar', 'Baz' => 'Bam']);
-        $r2 = $r->withoutHeader('foO');
-        $this->assertTrue($r->hasHeader('foo'));
-        $this->assertSame(['Foo' => ['Bar'], 'Baz' => ['Bam']], $r->getHeaders());
-        $this->assertFalse($r2->hasHeader('foo'));
-        $this->assertSame(['Baz' => ['Bam']], $r2->getHeaders());
-    }
-
-    public function testWithoutHeaderThatDoesNotExist()
-    {
-        $r = new Response(200, ['Baz' => 'Bam']);
-        $r2 = $r->withoutHeader('foO');
-        $this->assertSame($r, $r2);
-        $this->assertFalse($r2->hasHeader('foo'));
-        $this->assertSame(['Baz' => ['Bam']], $r2->getHeaders());
-    }
-
-    public function testSameInstanceWhenRemovingMissingHeader()
-    {
-        $r = new Response();
-        $this->assertSame($r, $r->withoutHeader('foo'));
-    }
-
-    public function testHeaderValuesAreTrimmed()
-    {
-        $r1 = new Response(200, ['OWS' => " \t \tFoo\t \t "]);
-        $r2 = (new Response())->withHeader('OWS', " \t \tFoo\t \t ");
-        $r3 = (new Response())->withAddedHeader('OWS', " \t \tFoo\t \t ");
-
-        foreach ([$r1, $r2, $r3] as $r) {
-            $this->assertSame(['OWS' => ['Foo']], $r->getHeaders());
-            $this->assertSame('Foo', $r->getHeaderLine('OWS'));
-            $this->assertSame(['Foo'], $r->getHeader('OWS'));
-        }
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/ServerRequestTest.php b/vendor/nyholm/psr7/tests/ServerRequestTest.php
deleted file mode 100644
index 9da572c238a52ce6ec80c82471102d5a547405e2..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/ServerRequestTest.php
+++ /dev/null
@@ -1,536 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7;
-
-use Nyholm\Psr7\ServerRequest;
-use Nyholm\Psr7\UploadedFile;
-use Nyholm\Psr7\Uri;
-use Nyholm\Psr7\Factory\ServerRequestFactory;
-use Nyholm\Psr7\Factory\UriFactory;
-use PHPUnit\Framework\TestCase;
-
-/**
- * @covers \Nyholm\Psr7\ServerRequest
- */
-class ServerRequestTest extends TestCase
-{
-    public function dataNormalizeFiles()
-    {
-        return [
-            'Single file' => [
-                [
-                    'file' => [
-                        'name' => 'MyFile.txt',
-                        'type' => 'text/plain',
-                        'tmp_name' => '/tmp/php/php1h4j1o',
-                        'error' => '0',
-                        'size' => '123',
-                    ],
-                ],
-                [
-                    'file' => new UploadedFile(
-                        '/tmp/php/php1h4j1o',
-                        123,
-                        UPLOAD_ERR_OK,
-                        'MyFile.txt',
-                        'text/plain'
-                    ),
-                ],
-            ],
-            'Empty file' => [
-                [
-                    'image_file' => [
-                        'name' => '',
-                        'type' => '',
-                        'tmp_name' => '',
-                        'error' => '4',
-                        'size' => '0',
-                    ],
-                ],
-                [
-                    'image_file' => new UploadedFile(
-                        '',
-                        0,
-                        UPLOAD_ERR_NO_FILE,
-                        '',
-                        ''
-                    ),
-                ],
-            ],
-            'Already Converted' => [
-                [
-                    'file' => new UploadedFile(
-                        '/tmp/php/php1h4j1o',
-                        123,
-                        UPLOAD_ERR_OK,
-                        'MyFile.txt',
-                        'text/plain'
-                    ),
-                ],
-                [
-                    'file' => new UploadedFile(
-                        '/tmp/php/php1h4j1o',
-                        123,
-                        UPLOAD_ERR_OK,
-                        'MyFile.txt',
-                        'text/plain'
-                    ),
-                ],
-            ],
-            'Already Converted array' => [
-                [
-                    'file' => [
-                        new UploadedFile(
-                            '/tmp/php/php1h4j1o',
-                            123,
-                            UPLOAD_ERR_OK,
-                            'MyFile.txt',
-                            'text/plain'
-                        ),
-                        new UploadedFile(
-                            '',
-                            0,
-                            UPLOAD_ERR_NO_FILE,
-                            '',
-                            ''
-                        ),
-                    ],
-                ],
-                [
-                    'file' => [
-                        new UploadedFile(
-                            '/tmp/php/php1h4j1o',
-                            123,
-                            UPLOAD_ERR_OK,
-                            'MyFile.txt',
-                            'text/plain'
-                        ),
-                        new UploadedFile(
-                            '',
-                            0,
-                            UPLOAD_ERR_NO_FILE,
-                            '',
-                            ''
-                        ),
-                    ],
-                ],
-            ],
-            'Multiple files' => [
-                [
-                    'text_file' => [
-                        'name' => 'MyFile.txt',
-                        'type' => 'text/plain',
-                        'tmp_name' => '/tmp/php/php1h4j1o',
-                        'error' => '0',
-                        'size' => '123',
-                    ],
-                    'image_file' => [
-                        'name' => '',
-                        'type' => '',
-                        'tmp_name' => '',
-                        'error' => '4',
-                        'size' => '0',
-                    ],
-                ],
-                [
-                    'text_file' => new UploadedFile(
-                        '/tmp/php/php1h4j1o',
-                        123,
-                        UPLOAD_ERR_OK,
-                        'MyFile.txt',
-                        'text/plain'
-                    ),
-                    'image_file' => new UploadedFile(
-                        '',
-                        0,
-                        UPLOAD_ERR_NO_FILE,
-                        '',
-                        ''
-                    ),
-                ],
-            ],
-            'Nested files' => [
-                [
-                    'file' => [
-                        'name' => [
-                            0 => 'MyFile.txt',
-                            1 => 'Image.png',
-                        ],
-                        'type' => [
-                            0 => 'text/plain',
-                            1 => 'image/png',
-                        ],
-                        'tmp_name' => [
-                            0 => '/tmp/php/hp9hskjhf',
-                            1 => '/tmp/php/php1h4j1o',
-                        ],
-                        'error' => [
-                            0 => '0',
-                            1 => '0',
-                        ],
-                        'size' => [
-                            0 => '123',
-                            1 => '7349',
-                        ],
-                    ],
-                    'nested' => [
-                        'name' => [
-                            'other' => 'Flag.txt',
-                            'test' => [
-                                0 => 'Stuff.txt',
-                                1 => '',
-                            ],
-                        ],
-                        'type' => [
-                            'other' => 'text/plain',
-                            'test' => [
-                                0 => 'text/plain',
-                                1 => '',
-                            ],
-                        ],
-                        'tmp_name' => [
-                            'other' => '/tmp/php/hp9hskjhf',
-                            'test' => [
-                                0 => '/tmp/php/asifu2gp3',
-                                1 => '',
-                            ],
-                        ],
-                        'error' => [
-                            'other' => '0',
-                            'test' => [
-                                0 => '0',
-                                1 => '4',
-                            ],
-                        ],
-                        'size' => [
-                            'other' => '421',
-                            'test' => [
-                                0 => '32',
-                                1 => '0',
-                            ],
-                        ],
-                    ],
-                ],
-                [
-                    'file' => [
-                        0 => new UploadedFile(
-                            '/tmp/php/hp9hskjhf',
-                            123,
-                            UPLOAD_ERR_OK,
-                            'MyFile.txt',
-                            'text/plain'
-                        ),
-                        1 => new UploadedFile(
-                            '/tmp/php/php1h4j1o',
-                            7349,
-                            UPLOAD_ERR_OK,
-                            'Image.png',
-                            'image/png'
-                        ),
-                    ],
-                    'nested' => [
-                        'other' => new UploadedFile(
-                            '/tmp/php/hp9hskjhf',
-                            421,
-                            UPLOAD_ERR_OK,
-                            'Flag.txt',
-                            'text/plain'
-                        ),
-                        'test' => [
-                            0 => new UploadedFile(
-                                '/tmp/php/asifu2gp3',
-                                32,
-                                UPLOAD_ERR_OK,
-                                'Stuff.txt',
-                                'text/plain'
-                            ),
-                            1 => new UploadedFile(
-                                '',
-                                0,
-                                UPLOAD_ERR_NO_FILE,
-                                '',
-                                ''
-                            ),
-                        ],
-                    ],
-                ],
-            ],
-        ];
-    }
-
-    /**
-     * @dataProvider dataNormalizeFiles
-     */
-    public function testNormalizeFiles($files, $expected)
-    {
-        $result = (new ServerRequestFactory())
-            ->createServerRequestFromArrays(['REQUEST_METHOD' => 'POST'], [], [], [], [], $files)
-            ->getUploadedFiles();
-
-        $this->assertEquals($expected, $result);
-    }
-
-    public function testNormalizeFilesRaisesException()
-    {
-        $this->expectException('InvalidArgumentException', 'Invalid value in files specification');
-
-        (new ServerRequestFactory())->createServerRequestFromArrays(['REQUEST_METHOD' => 'POST'], [], [], [], [], ['test' => 'something']);
-    }
-
-    public function dataGetUriFromGlobals()
-    {
-        $server = [
-            'PHP_SELF' => '/blog/article.php',
-            'GATEWAY_INTERFACE' => 'CGI/1.1',
-            'SERVER_ADDR' => 'Server IP: 217.112.82.20',
-            'SERVER_NAME' => 'www.blakesimpson.co.uk',
-            'SERVER_SOFTWARE' => 'Apache/2.2.15 (Win32) JRun/4.0 PHP/5.2.13',
-            'SERVER_PROTOCOL' => 'HTTP/1.0',
-            'REQUEST_METHOD' => 'POST',
-            'REQUEST_TIME' => 'Request start time: 1280149029',
-            'QUERY_STRING' => 'id=10&user=foo',
-            'DOCUMENT_ROOT' => '/path/to/your/server/root/',
-            'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
-            'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
-            'HTTP_ACCEPT_ENCODING' => 'gzip,deflate',
-            'HTTP_ACCEPT_LANGUAGE' => 'en-gb,en;q=0.5',
-            'HTTP_CONNECTION' => 'keep-alive',
-            'HTTP_HOST' => 'www.blakesimpson.co.uk',
-            'HTTP_REFERER' => 'http://previous.url.com',
-            'HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729)',
-            'HTTPS' => '1',
-            'REMOTE_ADDR' => '193.60.168.69',
-            'REMOTE_HOST' => 'Client server\'s host name',
-            'REMOTE_PORT' => '5390',
-            'SCRIPT_FILENAME' => '/path/to/this/script.php',
-            'SERVER_ADMIN' => 'webmaster@blakesimpson.co.uk',
-            'SERVER_PORT' => '80',
-            'SERVER_SIGNATURE' => 'Version signature: 5.123',
-            'SCRIPT_NAME' => '/blog/article.php',
-            'REQUEST_URI' => '/blog/article.php?id=10&user=foo',
-        ];
-
-        return [
-            'Normal request' => [
-                'http://www.blakesimpson.co.uk/blog/article.php?id=10&user=foo',
-                $server,
-            ],
-            'Secure request' => [
-                'https://www.blakesimpson.co.uk/blog/article.php?id=10&user=foo',
-                array_merge($server, ['HTTPS' => 'on', 'SERVER_PORT' => '443']),
-            ],
-            'HTTP_HOST missing' => [
-                'http://www.blakesimpson.co.uk/blog/article.php?id=10&user=foo',
-                array_merge($server, ['HTTP_HOST' => null]),
-            ],
-            'No query String' => [
-                'http://www.blakesimpson.co.uk/blog/article.php',
-                array_merge($server, ['REQUEST_URI' => '/blog/article.php', 'QUERY_STRING' => '']),
-            ],
-            'Different port' => [
-                'http://www.blakesimpson.co.uk:8324/blog/article.php?id=10&user=foo',
-                array_merge($server, ['SERVER_PORT' => '8324']),
-            ],
-            'Empty server variable' => [
-                '',
-                [],
-            ],
-        ];
-    }
-
-    /**
-     * @dataProvider dataGetUriFromGlobals
-     */
-    public function testGetUriFromGlobals($expected, $serverParams)
-    {
-        $this->assertEquals(new Uri($expected), (new UriFactory())->createUriFromArray($serverParams));
-    }
-
-    public function testFromGlobals()
-    {
-        $server = [
-            'PHP_SELF' => '/blog/article.php',
-            'GATEWAY_INTERFACE' => 'CGI/1.1',
-            'SERVER_ADDR' => 'Server IP: 217.112.82.20',
-            'SERVER_NAME' => 'www.blakesimpson.co.uk',
-            'SERVER_SOFTWARE' => 'Apache/2.2.15 (Win32) JRun/4.0 PHP/5.2.13',
-            'SERVER_PROTOCOL' => 'HTTP/1.0',
-            'REQUEST_METHOD' => 'POST',
-            'REQUEST_TIME' => 'Request start time: 1280149029',
-            'QUERY_STRING' => 'id=10&user=foo',
-            'DOCUMENT_ROOT' => '/path/to/your/server/root/',
-            'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
-            'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
-            'HTTP_ACCEPT_ENCODING' => 'gzip,deflate',
-            'HTTP_ACCEPT_LANGUAGE' => 'en-gb,en;q=0.5',
-            'HTTP_CONNECTION' => 'keep-alive',
-            'HTTP_HOST' => 'www.blakesimpson.co.uk',
-            'HTTP_REFERER' => 'http://previous.url.com',
-            'HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729)',
-            'HTTPS' => '1',
-            'REMOTE_ADDR' => '193.60.168.69',
-            'REMOTE_HOST' => 'Client server\'s host name',
-            'REMOTE_PORT' => '5390',
-            'SCRIPT_FILENAME' => '/path/to/this/script.php',
-            'SERVER_ADMIN' => 'webmaster@blakesimpson.co.uk',
-            'SERVER_PORT' => '80',
-            'SERVER_SIGNATURE' => 'Version signature: 5.123',
-            'SCRIPT_NAME' => '/blog/article.php',
-            'REQUEST_URI' => '/blog/article.php?id=10&user=foo',
-        ];
-
-        $cookie = [
-            'logged-in' => 'yes!',
-        ];
-
-        $post = [
-            'name' => 'Pesho',
-            'email' => 'pesho@example.com',
-        ];
-
-        $get = [
-            'id' => 10,
-            'user' => 'foo',
-        ];
-
-        $files = [
-            'file' => [
-                'name' => 'MyFile.txt',
-                'type' => 'text/plain',
-                'tmp_name' => '/tmp/php/php1h4j1o',
-                'error' => UPLOAD_ERR_OK,
-                'size' => 123,
-            ],
-        ];
-
-        $server = (new ServerRequestFactory())->createServerRequestFromArrays($server, [], $cookie, $get, $post, $files);
-
-        $this->assertEquals('POST', $server->getMethod());
-        $this->assertEquals(['Host' => ['www.blakesimpson.co.uk']], $server->getHeaders());
-        $this->assertEquals('', (string) $server->getBody());
-        $this->assertEquals('1.0', $server->getProtocolVersion());
-        $this->assertEquals($cookie, $server->getCookieParams());
-        $this->assertEquals($post, $server->getParsedBody());
-        $this->assertEquals($get, $server->getQueryParams());
-
-        $this->assertEquals(
-            new Uri('http://www.blakesimpson.co.uk/blog/article.php?id=10&user=foo'),
-            $server->getUri()
-        );
-
-        $expectedFiles = [
-            'file' => new UploadedFile(
-                '/tmp/php/php1h4j1o',
-                123,
-                UPLOAD_ERR_OK,
-                'MyFile.txt',
-                'text/plain'
-            ),
-        ];
-
-        $this->assertEquals($expectedFiles, $server->getUploadedFiles());
-    }
-
-    public function testUploadedFiles()
-    {
-        $request1 = new ServerRequest('GET', '/');
-
-        $files = [
-            'file' => new UploadedFile('test', 123, UPLOAD_ERR_OK),
-        ];
-
-        $request2 = $request1->withUploadedFiles($files);
-
-        $this->assertNotSame($request2, $request1);
-        $this->assertSame([], $request1->getUploadedFiles());
-        $this->assertSame($files, $request2->getUploadedFiles());
-    }
-
-    public function testServerParams()
-    {
-        $params = ['name' => 'value'];
-
-        $request = new ServerRequest('GET', '/', [], null, '1.1', $params);
-        $this->assertSame($params, $request->getServerParams());
-    }
-
-    public function testCookieParams()
-    {
-        $request1 = new ServerRequest('GET', '/');
-
-        $params = ['name' => 'value'];
-
-        $request2 = $request1->withCookieParams($params);
-
-        $this->assertNotSame($request2, $request1);
-        $this->assertEmpty($request1->getCookieParams());
-        $this->assertSame($params, $request2->getCookieParams());
-    }
-
-    public function testQueryParams()
-    {
-        $request1 = new ServerRequest('GET', '/');
-
-        $params = ['name' => 'value'];
-
-        $request2 = $request1->withQueryParams($params);
-
-        $this->assertNotSame($request2, $request1);
-        $this->assertEmpty($request1->getQueryParams());
-        $this->assertSame($params, $request2->getQueryParams());
-    }
-
-    public function testParsedBody()
-    {
-        $request1 = new ServerRequest('GET', '/');
-
-        $params = ['name' => 'value'];
-
-        $request2 = $request1->withParsedBody($params);
-
-        $this->assertNotSame($request2, $request1);
-        $this->assertEmpty($request1->getParsedBody());
-        $this->assertSame($params, $request2->getParsedBody());
-    }
-
-    public function testAttributes()
-    {
-        $request1 = new ServerRequest('GET', '/');
-
-        $request2 = $request1->withAttribute('name', 'value');
-        $request3 = $request2->withAttribute('other', 'otherValue');
-        $request4 = $request3->withoutAttribute('other');
-        $request5 = $request3->withoutAttribute('unknown');
-
-        $this->assertNotSame($request2, $request1);
-        $this->assertNotSame($request3, $request2);
-        $this->assertNotSame($request4, $request3);
-        $this->assertNotSame($request5, $request4);
-
-        $this->assertEmpty($request1->getAttributes());
-        $this->assertEmpty($request1->getAttribute('name'));
-        $this->assertEquals(
-            'something',
-            $request1->getAttribute('name', 'something'),
-            'Should return the default value'
-        );
-
-        $this->assertEquals('value', $request2->getAttribute('name'));
-        $this->assertEquals(['name' => 'value'], $request2->getAttributes());
-        $this->assertEquals(['name' => 'value', 'other' => 'otherValue'], $request3->getAttributes());
-        $this->assertEquals(['name' => 'value'], $request4->getAttributes());
-    }
-
-    public function testNullAttribute()
-    {
-        $request = (new ServerRequest('GET', '/'))->withAttribute('name', null);
-
-        $this->assertSame(['name' => null], $request->getAttributes());
-        $this->assertNull($request->getAttribute('name', 'different-default'));
-
-        $requestWithoutAttribute = $request->withoutAttribute('name');
-
-        $this->assertSame([], $requestWithoutAttribute->getAttributes());
-        $this->assertSame('different-default', $requestWithoutAttribute->getAttribute('name', 'different-default'));
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/StreamTest.php b/vendor/nyholm/psr7/tests/StreamTest.php
deleted file mode 100644
index b02a69663f21b4ad0b0bf64ff9a69ed96a5ae35c..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/StreamTest.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7;
-
-use Nyholm\Psr7\Stream;
-use PHPUnit\Framework\TestCase;
-
-/**
- * @covers \Nyholm\Psr7\Stream
- */
-class StreamTest extends TestCase
-{
-    public function testConstructorInitializesProperties()
-    {
-        $handle = fopen('php://temp', 'r+');
-        fwrite($handle, 'data');
-        $stream = Stream::createFromResource($handle);
-        $this->assertTrue($stream->isReadable());
-        $this->assertTrue($stream->isWritable());
-        $this->assertTrue($stream->isSeekable());
-        $this->assertEquals('php://temp', $stream->getMetadata('uri'));
-        $this->assertInternalType('array', $stream->getMetadata());
-        $this->assertEquals(4, $stream->getSize());
-        $this->assertFalse($stream->eof());
-        $stream->close();
-    }
-
-    public function testStreamClosesHandleOnDestruct()
-    {
-        $handle = fopen('php://temp', 'r');
-        $stream = Stream::createFromResource($handle);
-        unset($stream);
-        $this->assertFalse(is_resource($handle));
-    }
-
-    public function testConvertsToString()
-    {
-        $handle = fopen('php://temp', 'w+');
-        fwrite($handle, 'data');
-        $stream = Stream::createFromResource($handle);
-        $this->assertEquals('data', (string) $stream);
-        $this->assertEquals('data', (string) $stream);
-        $stream->close();
-    }
-
-    public function testGetsContents()
-    {
-        $handle = fopen('php://temp', 'w+');
-        fwrite($handle, 'data');
-        $stream = Stream::createFromResource($handle);
-        $this->assertEquals('', $stream->getContents());
-        $stream->seek(0);
-        $this->assertEquals('data', $stream->getContents());
-        $this->assertEquals('', $stream->getContents());
-    }
-
-    public function testChecksEof()
-    {
-        $handle = fopen('php://temp', 'w+');
-        fwrite($handle, 'data');
-        $stream = Stream::createFromResource($handle);
-        $this->assertFalse($stream->eof());
-        $stream->read(4);
-        $this->assertTrue($stream->eof());
-        $stream->close();
-    }
-
-    public function testGetSize()
-    {
-        $size = filesize(__FILE__);
-        $handle = fopen(__FILE__, 'r');
-        $stream = Stream::createFromResource($handle);
-        $this->assertEquals($size, $stream->getSize());
-        // Load from cache
-        $this->assertEquals($size, $stream->getSize());
-        $stream->close();
-    }
-
-    public function testEnsuresSizeIsConsistent()
-    {
-        $h = fopen('php://temp', 'w+');
-        $this->assertEquals(3, fwrite($h, 'foo'));
-        $stream = Stream::createFromResource($h);
-        $this->assertEquals(3, $stream->getSize());
-        $this->assertEquals(4, $stream->write('test'));
-        $this->assertEquals(7, $stream->getSize());
-        $this->assertEquals(7, $stream->getSize());
-        $stream->close();
-    }
-
-    public function testProvidesStreamPosition()
-    {
-        $handle = fopen('php://temp', 'w+');
-        $stream = Stream::createFromResource($handle);
-        $this->assertEquals(0, $stream->tell());
-        $stream->write('foo');
-        $this->assertEquals(3, $stream->tell());
-        $stream->seek(1);
-        $this->assertEquals(1, $stream->tell());
-        $this->assertSame(ftell($handle), $stream->tell());
-        $stream->close();
-    }
-
-    public function testCanDetachStream()
-    {
-        $r = fopen('php://temp', 'w+');
-        $stream = Stream::createFromResource($r);
-        $stream->write('foo');
-        $this->assertTrue($stream->isReadable());
-        $this->assertSame($r, $stream->detach());
-        $stream->detach();
-
-        $this->assertFalse($stream->isReadable());
-        $this->assertFalse($stream->isWritable());
-        $this->assertFalse($stream->isSeekable());
-
-        $throws = function (callable $fn) use ($stream) {
-            try {
-                $fn($stream);
-                $this->fail();
-            } catch (\Exception $e) {
-            }
-        };
-
-        $throws(function ($stream) {
-            $stream->read(10);
-        });
-        $throws(function ($stream) {
-            $stream->write('bar');
-        });
-        $throws(function ($stream) {
-            $stream->seek(10);
-        });
-        $throws(function ($stream) {
-            $stream->tell();
-        });
-        $throws(function ($stream) {
-            $stream->eof();
-        });
-        $throws(function ($stream) {
-            $stream->getSize();
-        });
-        $throws(function ($stream) {
-            $stream->getContents();
-        });
-        $this->assertSame('', (string) $stream);
-        $stream->close();
-    }
-
-    public function testCloseClearProperties()
-    {
-        $handle = fopen('php://temp', 'r+');
-        $stream = Stream::createFromResource($handle);
-        $stream->close();
-
-        $this->assertFalse($stream->isSeekable());
-        $this->assertFalse($stream->isReadable());
-        $this->assertFalse($stream->isWritable());
-        $this->assertNull($stream->getSize());
-        $this->assertEmpty($stream->getMetadata());
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/UploadedFileTest.php b/vendor/nyholm/psr7/tests/UploadedFileTest.php
deleted file mode 100644
index 0932e7ff5b090d9292fbf7e4b1cfe9600f820cd8..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/UploadedFileTest.php
+++ /dev/null
@@ -1,270 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7;
-
-use Nyholm\Psr7\Stream;
-use Nyholm\Psr7\UploadedFile;
-use PHPUnit\Framework\TestCase;
-
-/**
- * @covers \Nyholm\Psr7\UploadedFile
- */
-class UploadedFileTest extends TestCase
-{
-    protected $cleanup;
-
-    public function setUp()
-    {
-        $this->cleanup = [];
-    }
-
-    public function tearDown()
-    {
-        foreach ($this->cleanup as $file) {
-            if (is_scalar($file) && file_exists($file)) {
-                unlink($file);
-            }
-        }
-    }
-
-    public function invalidStreams()
-    {
-        return [
-            'null' => [null],
-            'true' => [true],
-            'false' => [false],
-            'int' => [1],
-            'float' => [1.1],
-            'array' => [['filename']],
-            'object' => [(object) ['filename']],
-        ];
-    }
-
-    /**
-     * @dataProvider invalidStreams
-     */
-    public function testRaisesExceptionOnInvalidStreamOrFile($streamOrFile)
-    {
-        $this->expectException('InvalidArgumentException');
-
-        new UploadedFile($streamOrFile, 0, UPLOAD_ERR_OK);
-    }
-
-    public function invalidSizes()
-    {
-        return [
-            'null' => [null],
-            'float' => [1.1],
-            'array' => [[1]],
-            'object' => [(object) [1]],
-        ];
-    }
-
-    /**
-     * @dataProvider invalidSizes
-     */
-    public function testRaisesExceptionOnInvalidSize($size)
-    {
-        $this->expectException('InvalidArgumentException', 'size');
-
-        new UploadedFile(fopen('php://temp', 'wb+'), $size, UPLOAD_ERR_OK);
-    }
-
-    public function invalidErrorStatuses()
-    {
-        return [
-            'null' => [null],
-            'true' => [true],
-            'false' => [false],
-            'float' => [1.1],
-            'string' => ['1'],
-            'array' => [[1]],
-            'object' => [(object) [1]],
-            'negative' => [-1],
-            'too-big' => [9],
-        ];
-    }
-
-    /**
-     * @dataProvider invalidErrorStatuses
-     */
-    public function testRaisesExceptionOnInvalidErrorStatus($status)
-    {
-        $this->expectException('InvalidArgumentException', 'status');
-
-        new UploadedFile(fopen('php://temp', 'wb+'), 0, $status);
-    }
-
-    public function invalidFilenamesAndMediaTypes()
-    {
-        return [
-            'true' => [true],
-            'false' => [false],
-            'int' => [1],
-            'float' => [1.1],
-            'array' => [['string']],
-            'object' => [(object) ['string']],
-        ];
-    }
-
-    /**
-     * @dataProvider invalidFilenamesAndMediaTypes
-     */
-    public function testRaisesExceptionOnInvalidClientFilename($filename)
-    {
-        $this->expectException('InvalidArgumentException', 'filename');
-
-        new UploadedFile(fopen('php://temp', 'wb+'), 0, UPLOAD_ERR_OK, $filename);
-    }
-
-    /**
-     * @dataProvider invalidFilenamesAndMediaTypes
-     */
-    public function testRaisesExceptionOnInvalidClientMediaType($mediaType)
-    {
-        $this->expectException('InvalidArgumentException', 'media type');
-
-        new UploadedFile(fopen('php://temp', 'wb+'), 0, UPLOAD_ERR_OK, 'foobar.baz', $mediaType);
-    }
-
-    public function testGetStreamReturnsOriginalStreamObject()
-    {
-        $stream = Stream::create('');
-        $upload = new UploadedFile($stream, 0, UPLOAD_ERR_OK);
-
-        $this->assertSame($stream, $upload->getStream());
-    }
-
-    public function testGetStreamReturnsWrappedPhpStream()
-    {
-        $stream = fopen('php://temp', 'wb+');
-        $upload = new UploadedFile($stream, 0, UPLOAD_ERR_OK);
-        $uploadStream = $upload->getStream()->detach();
-
-        $this->assertSame($stream, $uploadStream);
-    }
-
-    public function testSuccessful()
-    {
-        $stream = Stream::create('Foo bar!');
-        $upload = new UploadedFile($stream, $stream->getSize(), UPLOAD_ERR_OK, 'filename.txt', 'text/plain');
-
-        $this->assertEquals($stream->getSize(), $upload->getSize());
-        $this->assertEquals('filename.txt', $upload->getClientFilename());
-        $this->assertEquals('text/plain', $upload->getClientMediaType());
-
-        $this->cleanup[] = $to = tempnam(sys_get_temp_dir(), 'successful');
-        $upload->moveTo($to);
-        $this->assertFileExists($to);
-        $this->assertEquals($stream->__toString(), file_get_contents($to));
-    }
-
-    public function invalidMovePaths()
-    {
-        return [
-            'null' => [null],
-            'true' => [true],
-            'false' => [false],
-            'int' => [1],
-            'float' => [1.1],
-            'empty' => [''],
-            'array' => [['filename']],
-            'object' => [(object) ['filename']],
-        ];
-    }
-
-    /**
-     * @dataProvider invalidMovePaths
-     */
-    public function testMoveRaisesExceptionForInvalidPath($path)
-    {
-        $stream = (new \Nyholm\Psr7\Factory\StreamFactory())->createStream('Foo bar!');
-        $upload = new UploadedFile($stream, 0, UPLOAD_ERR_OK);
-
-        $this->cleanup[] = $path;
-
-        $this->expectException('InvalidArgumentException', 'path');
-        $upload->moveTo($path);
-    }
-
-    public function testMoveCannotBeCalledMoreThanOnce()
-    {
-        $stream = (new \Nyholm\Psr7\Factory\StreamFactory())->createStream('Foo bar!');
-        $upload = new UploadedFile($stream, 0, UPLOAD_ERR_OK);
-
-        $this->cleanup[] = $to = tempnam(sys_get_temp_dir(), 'diac');
-        $upload->moveTo($to);
-        $this->assertTrue(file_exists($to));
-
-        $this->expectException('RuntimeException', 'moved');
-        $upload->moveTo($to);
-    }
-
-    public function testCannotRetrieveStreamAfterMove()
-    {
-        $stream = (new \Nyholm\Psr7\Factory\StreamFactory())->createStream('Foo bar!');
-        $upload = new UploadedFile($stream, 0, UPLOAD_ERR_OK);
-
-        $this->cleanup[] = $to = tempnam(sys_get_temp_dir(), 'diac');
-        $upload->moveTo($to);
-        $this->assertFileExists($to);
-
-        $this->expectException('RuntimeException', 'moved');
-        $upload->getStream();
-    }
-
-    public function nonOkErrorStatus()
-    {
-        return [
-            'UPLOAD_ERR_INI_SIZE' => [UPLOAD_ERR_INI_SIZE],
-            'UPLOAD_ERR_FORM_SIZE' => [UPLOAD_ERR_FORM_SIZE],
-            'UPLOAD_ERR_PARTIAL' => [UPLOAD_ERR_PARTIAL],
-            'UPLOAD_ERR_NO_FILE' => [UPLOAD_ERR_NO_FILE],
-            'UPLOAD_ERR_NO_TMP_DIR' => [UPLOAD_ERR_NO_TMP_DIR],
-            'UPLOAD_ERR_CANT_WRITE' => [UPLOAD_ERR_CANT_WRITE],
-            'UPLOAD_ERR_EXTENSION' => [UPLOAD_ERR_EXTENSION],
-        ];
-    }
-
-    /**
-     * @dataProvider nonOkErrorStatus
-     */
-    public function testConstructorDoesNotRaiseExceptionForInvalidStreamWhenErrorStatusPresent($status)
-    {
-        $uploadedFile = new UploadedFile('not ok', 0, $status);
-        $this->assertSame($status, $uploadedFile->getError());
-    }
-
-    /**
-     * @dataProvider nonOkErrorStatus
-     */
-    public function testMoveToRaisesExceptionWhenErrorStatusPresent($status)
-    {
-        $uploadedFile = new UploadedFile('not ok', 0, $status);
-        $this->expectException('RuntimeException', 'upload error');
-        $uploadedFile->moveTo(__DIR__.'/'.uniqid());
-    }
-
-    /**
-     * @dataProvider nonOkErrorStatus
-     */
-    public function testGetStreamRaisesExceptionWhenErrorStatusPresent($status)
-    {
-        $uploadedFile = new UploadedFile('not ok', 0, $status);
-        $this->expectException('RuntimeException', 'upload error');
-        $stream = $uploadedFile->getStream();
-    }
-
-    public function testMoveToCreatesStreamIfOnlyAFilenameWasProvided()
-    {
-        $this->cleanup[] = $from = tempnam(sys_get_temp_dir(), 'copy_from');
-        $this->cleanup[] = $to = tempnam(sys_get_temp_dir(), 'copy_to');
-
-        copy(__FILE__, $from);
-
-        $uploadedFile = new UploadedFile($from, 100, UPLOAD_ERR_OK, basename($from), 'text/plain');
-        $uploadedFile->moveTo($to);
-
-        $this->assertFileEquals(__FILE__, $to);
-    }
-}
diff --git a/vendor/nyholm/psr7/tests/UriTest.php b/vendor/nyholm/psr7/tests/UriTest.php
deleted file mode 100644
index 534d0c5bf8ff7e6dc586a8a6c8b5b205cc1f1f4e..0000000000000000000000000000000000000000
--- a/vendor/nyholm/psr7/tests/UriTest.php
+++ /dev/null
@@ -1,491 +0,0 @@
-<?php
-
-namespace Tests\Nyholm\Psr7;
-
-use Nyholm\Psr7\Uri;
-use PHPUnit\Framework\TestCase;
-
-/**
- * @covers \Nyholm\Psr7\Uri
- */
-class UriTest extends TestCase
-{
-    const RFC3986_BASE = 'http://a/b/c/d;p?q';
-
-    public function testParsesProvidedUri()
-    {
-        $uri = new Uri('https://user:pass@example.com:8080/path/123?q=abc#test');
-
-        $this->assertSame('https', $uri->getScheme());
-        $this->assertSame('user:pass@example.com:8080', $uri->getAuthority());
-        $this->assertSame('user:pass', $uri->getUserInfo());
-        $this->assertSame('example.com', $uri->getHost());
-        $this->assertSame(8080, $uri->getPort());
-        $this->assertSame('/path/123', $uri->getPath());
-        $this->assertSame('q=abc', $uri->getQuery());
-        $this->assertSame('test', $uri->getFragment());
-        $this->assertSame('https://user:pass@example.com:8080/path/123?q=abc#test', (string) $uri);
-    }
-
-    public function testCanTransformAndRetrievePartsIndividually()
-    {
-        $uri = (new Uri())
-            ->withScheme('https')
-            ->withUserInfo('user', 'pass')
-            ->withHost('example.com')
-            ->withPort(8080)
-            ->withPath('/path/123')
-            ->withQuery('q=abc')
-            ->withFragment('test');
-
-        $this->assertSame('https', $uri->getScheme());
-        $this->assertSame('user:pass@example.com:8080', $uri->getAuthority());
-        $this->assertSame('user:pass', $uri->getUserInfo());
-        $this->assertSame('example.com', $uri->getHost());
-        $this->assertSame(8080, $uri->getPort());
-        $this->assertSame('/path/123', $uri->getPath());
-        $this->assertSame('q=abc', $uri->getQuery());
-        $this->assertSame('test', $uri->getFragment());
-        $this->assertSame('https://user:pass@example.com:8080/path/123?q=abc#test', (string) $uri);
-    }
-
-    /**
-     * @dataProvider getValidUris
-     */
-    public function testValidUrisStayValid($input)
-    {
-        $uri = new Uri($input);
-
-        $this->assertSame($input, (string) $uri);
-    }
-
-    public function getValidUris()
-    {
-        return [
-            ['urn:path-rootless'],
-            ['urn:path:with:colon'],
-            ['urn:/path-absolute'],
-            ['urn:/'],
-            // only scheme with empty path
-            ['urn:'],
-            // only path
-            ['/'],
-            ['relative/'],
-            ['0'],
-            // same document reference
-            [''],
-            // network path without scheme
-            ['//example.org'],
-            ['//example.org/'],
-            ['//example.org?q#h'],
-            // only query
-            ['?q'],
-            ['?q=abc&foo=bar'],
-            // only fragment
-            ['#fragment'],
-            // dot segments are not removed automatically
-            ['./foo/../bar'],
-        ];
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Unable to parse URI
-     * @dataProvider getInvalidUris
-     */
-    public function testInvalidUrisThrowException($invalidUri)
-    {
-        new Uri($invalidUri);
-    }
-
-    public function getInvalidUris()
-    {
-        return [
-            // parse_url() requires the host component which makes sense for http(s)
-            // but not when the scheme is not known or different. So '//' or '///' is
-            // currently invalid as well but should not according to RFC 3986.
-            ['http://'],
-            ['urn://host:with:colon'], // host cannot contain ":"
-        ];
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Invalid port: 100000. Must be between 1 and 65535
-     */
-    public function testPortMustBeValid()
-    {
-        (new Uri())->withPort(100000);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Invalid port: 0. Must be between 1 and 65535
-     */
-    public function testWithPortCannotBeZero()
-    {
-        (new Uri())->withPort(0);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Unable to parse URI
-     */
-    public function testParseUriPortCannotBeZero()
-    {
-        new Uri('//example.com:0');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSchemeMustHaveCorrectType()
-    {
-        (new Uri())->withScheme([]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testHostMustHaveCorrectType()
-    {
-        (new Uri())->withHost([]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testPathMustHaveCorrectType()
-    {
-        (new Uri())->withPath([]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testQueryMustHaveCorrectType()
-    {
-        (new Uri())->withQuery([]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testFragmentMustHaveCorrectType()
-    {
-        (new Uri())->withFragment([]);
-    }
-
-    public function testCanParseFalseyUriParts()
-    {
-        $uri = new Uri('0://0:0@0/0?0#0');
-
-        $this->assertSame('0', $uri->getScheme());
-        $this->assertSame('0:0@0', $uri->getAuthority());
-        $this->assertSame('0:0', $uri->getUserInfo());
-        $this->assertSame('0', $uri->getHost());
-        $this->assertSame('/0', $uri->getPath());
-        $this->assertSame('0', $uri->getQuery());
-        $this->assertSame('0', $uri->getFragment());
-        $this->assertSame('0://0:0@0/0?0#0', (string) $uri);
-    }
-
-    public function testCanConstructFalseyUriParts()
-    {
-        $uri = (new Uri())
-            ->withScheme('0')
-            ->withUserInfo('0', '0')
-            ->withHost('0')
-            ->withPath('/0')
-            ->withQuery('0')
-            ->withFragment('0');
-
-        $this->assertSame('0', $uri->getScheme());
-        $this->assertSame('0:0@0', $uri->getAuthority());
-        $this->assertSame('0:0', $uri->getUserInfo());
-        $this->assertSame('0', $uri->getHost());
-        $this->assertSame('/0', $uri->getPath());
-        $this->assertSame('0', $uri->getQuery());
-        $this->assertSame('0', $uri->getFragment());
-        $this->assertSame('0://0:0@0/0?0#0', (string) $uri);
-    }
-
-    public function getResolveTestCases()
-    {
-        return [
-            [self::RFC3986_BASE, 'g:h',           'g:h'],
-            [self::RFC3986_BASE, 'g',             'http://a/b/c/g'],
-            [self::RFC3986_BASE, './g',           'http://a/b/c/g'],
-            [self::RFC3986_BASE, 'g/',            'http://a/b/c/g/'],
-            [self::RFC3986_BASE, '/g',            'http://a/g'],
-            [self::RFC3986_BASE, '//g',           'http://g'],
-            [self::RFC3986_BASE, '?y',            'http://a/b/c/d;p?y'],
-            [self::RFC3986_BASE, 'g?y',           'http://a/b/c/g?y'],
-            [self::RFC3986_BASE, '#s',            'http://a/b/c/d;p?q#s'],
-            [self::RFC3986_BASE, 'g#s',           'http://a/b/c/g#s'],
-            [self::RFC3986_BASE, 'g?y#s',         'http://a/b/c/g?y#s'],
-            [self::RFC3986_BASE, ';x',            'http://a/b/c/;x'],
-            [self::RFC3986_BASE, 'g;x',           'http://a/b/c/g;x'],
-            [self::RFC3986_BASE, 'g;x?y#s',       'http://a/b/c/g;x?y#s'],
-            [self::RFC3986_BASE, '',              self::RFC3986_BASE],
-            [self::RFC3986_BASE, '.',             'http://a/b/c/'],
-            [self::RFC3986_BASE, './',            'http://a/b/c/'],
-            [self::RFC3986_BASE, '..',            'http://a/b/'],
-            [self::RFC3986_BASE, '../',           'http://a/b/'],
-            [self::RFC3986_BASE, '../g',          'http://a/b/g'],
-            [self::RFC3986_BASE, '../..',         'http://a/'],
-            [self::RFC3986_BASE, '../../',        'http://a/'],
-            [self::RFC3986_BASE, '../../g',       'http://a/g'],
-            [self::RFC3986_BASE, '../../../g',    'http://a/g'],
-            [self::RFC3986_BASE, '../../../../g', 'http://a/g'],
-            [self::RFC3986_BASE, '/./g',          'http://a/g'],
-            [self::RFC3986_BASE, '/../g',         'http://a/g'],
-            [self::RFC3986_BASE, 'g.',            'http://a/b/c/g.'],
-            [self::RFC3986_BASE, '.g',            'http://a/b/c/.g'],
-            [self::RFC3986_BASE, 'g..',           'http://a/b/c/g..'],
-            [self::RFC3986_BASE, '..g',           'http://a/b/c/..g'],
-            [self::RFC3986_BASE, './../g',        'http://a/b/g'],
-            [self::RFC3986_BASE, 'foo////g',      'http://a/b/c/foo////g'],
-            [self::RFC3986_BASE, './g/.',         'http://a/b/c/g/'],
-            [self::RFC3986_BASE, 'g/./h',         'http://a/b/c/g/h'],
-            [self::RFC3986_BASE, 'g/../h',        'http://a/b/c/h'],
-            [self::RFC3986_BASE, 'g;x=1/./y',     'http://a/b/c/g;x=1/y'],
-            [self::RFC3986_BASE, 'g;x=1/../y',    'http://a/b/c/y'],
-            // dot-segments in the query or fragment
-            [self::RFC3986_BASE, 'g?y/./x',       'http://a/b/c/g?y/./x'],
-            [self::RFC3986_BASE, 'g?y/../x',      'http://a/b/c/g?y/../x'],
-            [self::RFC3986_BASE, 'g#s/./x',       'http://a/b/c/g#s/./x'],
-            [self::RFC3986_BASE, 'g#s/../x',      'http://a/b/c/g#s/../x'],
-            [self::RFC3986_BASE, 'g#s/../x',      'http://a/b/c/g#s/../x'],
-            [self::RFC3986_BASE, '?y#s',          'http://a/b/c/d;p?y#s'],
-            ['http://a/b/c/d;p?q#s', '?y',        'http://a/b/c/d;p?y'],
-            ['http://u@a/b/c/d;p?q', '.',         'http://u@a/b/c/'],
-            ['http://u:p@a/b/c/d;p?q', '.',       'http://u:p@a/b/c/'],
-            ['http://a/b/c/d/', 'e',              'http://a/b/c/d/e'],
-            ['urn:no-slash', 'e',                 'urn:e'],
-            // falsey relative parts
-            [self::RFC3986_BASE, '//0',           'http://0'],
-            [self::RFC3986_BASE, '0',             'http://a/b/c/0'],
-            [self::RFC3986_BASE, '?0',            'http://a/b/c/d;p?0'],
-            [self::RFC3986_BASE, '#0',            'http://a/b/c/d;p?q#0'],
-        ];
-    }
-
-    public function testSchemeIsNormalizedToLowercase()
-    {
-        $uri = new Uri('HTTP://example.com');
-
-        $this->assertSame('http', $uri->getScheme());
-        $this->assertSame('http://example.com', (string) $uri);
-
-        $uri = (new Uri('//example.com'))->withScheme('HTTP');
-
-        $this->assertSame('http', $uri->getScheme());
-        $this->assertSame('http://example.com', (string) $uri);
-    }
-
-    public function testHostIsNormalizedToLowercase()
-    {
-        $uri = new Uri('//eXaMpLe.CoM');
-
-        $this->assertSame('example.com', $uri->getHost());
-        $this->assertSame('//example.com', (string) $uri);
-
-        $uri = (new Uri())->withHost('eXaMpLe.CoM');
-
-        $this->assertSame('example.com', $uri->getHost());
-        $this->assertSame('//example.com', (string) $uri);
-    }
-
-    public function testPortIsNullIfStandardPortForScheme()
-    {
-        // HTTPS standard port
-        $uri = new Uri('https://example.com:443');
-        $this->assertNull($uri->getPort());
-        $this->assertSame('example.com', $uri->getAuthority());
-
-        $uri = (new Uri('https://example.com'))->withPort(443);
-        $this->assertNull($uri->getPort());
-        $this->assertSame('example.com', $uri->getAuthority());
-
-        // HTTP standard port
-        $uri = new Uri('http://example.com:80');
-        $this->assertNull($uri->getPort());
-        $this->assertSame('example.com', $uri->getAuthority());
-
-        $uri = (new Uri('http://example.com'))->withPort(80);
-        $this->assertNull($uri->getPort());
-        $this->assertSame('example.com', $uri->getAuthority());
-    }
-
-    public function testPortIsReturnedIfSchemeUnknown()
-    {
-        $uri = (new Uri('//example.com'))->withPort(80);
-
-        $this->assertSame(80, $uri->getPort());
-        $this->assertSame('example.com:80', $uri->getAuthority());
-    }
-
-    public function testStandardPortIsNullIfSchemeChanges()
-    {
-        $uri = new Uri('http://example.com:443');
-        $this->assertSame('http', $uri->getScheme());
-        $this->assertSame(443, $uri->getPort());
-
-        $uri = $uri->withScheme('https');
-        $this->assertNull($uri->getPort());
-    }
-
-    public function testPortPassedAsStringIsCastedToInt()
-    {
-        $uri = (new Uri('//example.com'))->withPort('8080');
-
-        $this->assertSame(8080, $uri->getPort(), 'Port is returned as integer');
-        $this->assertSame('example.com:8080', $uri->getAuthority());
-    }
-
-    public function testPortCanBeRemoved()
-    {
-        $uri = (new Uri('http://example.com:8080'))->withPort(null);
-
-        $this->assertNull($uri->getPort());
-        $this->assertSame('http://example.com', (string) $uri);
-    }
-
-    public function testAuthorityWithUserInfoButWithoutHost()
-    {
-        $uri = (new Uri())->withUserInfo('user', 'pass');
-
-        $this->assertSame('user:pass', $uri->getUserInfo());
-        $this->assertSame('', $uri->getAuthority());
-    }
-
-    public function uriComponentsEncodingProvider()
-    {
-        $unreserved = 'a-zA-Z0-9.-_~!$&\'()*+,;=:@';
-
-        return [
-            // Percent encode spaces
-            ['/pa th?q=va lue#frag ment', '/pa%20th', 'q=va%20lue', 'frag%20ment', '/pa%20th?q=va%20lue#frag%20ment'],
-            // Percent encode multibyte
-            ['/€?€#€', '/%E2%82%AC', '%E2%82%AC', '%E2%82%AC', '/%E2%82%AC?%E2%82%AC#%E2%82%AC'],
-            // Don't encode something that's already encoded
-            ['/pa%20th?q=va%20lue#frag%20ment', '/pa%20th', 'q=va%20lue', 'frag%20ment', '/pa%20th?q=va%20lue#frag%20ment'],
-            // Percent encode invalid percent encodings
-            ['/pa%2-th?q=va%2-lue#frag%2-ment', '/pa%252-th', 'q=va%252-lue', 'frag%252-ment', '/pa%252-th?q=va%252-lue#frag%252-ment'],
-            // Don't encode path segments
-            ['/pa/th//two?q=va/lue#frag/ment', '/pa/th//two', 'q=va/lue', 'frag/ment', '/pa/th//two?q=va/lue#frag/ment'],
-            // Don't encode unreserved chars or sub-delimiters
-            ["/$unreserved?$unreserved#$unreserved", "/$unreserved", $unreserved, $unreserved, "/$unreserved?$unreserved#$unreserved"],
-            // Encoded unreserved chars are not decoded
-            ['/p%61th?q=v%61lue#fr%61gment', '/p%61th', 'q=v%61lue', 'fr%61gment', '/p%61th?q=v%61lue#fr%61gment'],
-        ];
-    }
-
-    /**
-     * @dataProvider uriComponentsEncodingProvider
-     */
-    public function testUriComponentsGetEncodedProperly($input, $path, $query, $fragment, $output)
-    {
-        $uri = new Uri($input);
-        $this->assertSame($path, $uri->getPath());
-        $this->assertSame($query, $uri->getQuery());
-        $this->assertSame($fragment, $uri->getFragment());
-        $this->assertSame($output, (string) $uri);
-    }
-
-    public function testWithPathEncodesProperly()
-    {
-        $uri = (new Uri())->withPath('/baz?#€/b%61r');
-        // Query and fragment delimiters and multibyte chars are encoded.
-        $this->assertSame('/baz%3F%23%E2%82%AC/b%61r', $uri->getPath());
-        $this->assertSame('/baz%3F%23%E2%82%AC/b%61r', (string) $uri);
-    }
-
-    public function testWithQueryEncodesProperly()
-    {
-        $uri = (new Uri())->withQuery('?=#&€=/&b%61r');
-        // A query starting with a "?" is valid and must not be magically removed. Otherwise it would be impossible to
-        // construct such an URI. Also the "?" and "/" does not need to be encoded in the query.
-        $this->assertSame('?=%23&%E2%82%AC=/&b%61r', $uri->getQuery());
-        $this->assertSame('??=%23&%E2%82%AC=/&b%61r', (string) $uri);
-    }
-
-    public function testWithFragmentEncodesProperly()
-    {
-        $uri = (new Uri())->withFragment('#€?/b%61r');
-        // A fragment starting with a "#" is valid and must not be magically removed. Otherwise it would be impossible to
-        // construct such an URI. Also the "?" and "/" does not need to be encoded in the fragment.
-        $this->assertSame('%23%E2%82%AC?/b%61r', $uri->getFragment());
-        $this->assertSame('#%23%E2%82%AC?/b%61r', (string) $uri);
-    }
-
-    public function testAllowsForRelativeUri()
-    {
-        $uri = (new Uri())->withPath('foo');
-        $this->assertSame('foo', $uri->getPath());
-        $this->assertSame('foo', (string) $uri);
-    }
-
-    public function testAddsSlashForRelativeUriStringWithHost()
-    {
-        // If the path is rootless and an authority is present, the path MUST
-        // be prefixed by "/".
-        $uri = (new Uri())->withPath('foo')->withHost('example.com');
-        $this->assertSame('foo', $uri->getPath());
-        // concatenating a relative path with a host doesn't work: "//example.comfoo" would be wrong
-        $this->assertSame('//example.com/foo', (string) $uri);
-    }
-
-    public function testRemoveExtraSlashesWihoutHost()
-    {
-        // If the path is starting with more than one "/" and no authority is
-        // present, the starting slashes MUST be reduced to one.
-        $uri = (new Uri())->withPath('//foo');
-        $this->assertSame('//foo', $uri->getPath());
-        // URI "//foo" would be interpreted as network reference and thus change the original path to the host
-        $this->assertSame('/foo', (string) $uri);
-    }
-
-    public function testDefaultReturnValuesOfGetters()
-    {
-        $uri = new Uri();
-
-        $this->assertSame('', $uri->getScheme());
-        $this->assertSame('', $uri->getAuthority());
-        $this->assertSame('', $uri->getUserInfo());
-        $this->assertSame('', $uri->getHost());
-        $this->assertNull($uri->getPort());
-        $this->assertSame('', $uri->getPath());
-        $this->assertSame('', $uri->getQuery());
-        $this->assertSame('', $uri->getFragment());
-    }
-
-    public function testImmutability()
-    {
-        $uri = new Uri();
-
-        $this->assertNotSame($uri, $uri->withScheme('https'));
-        $this->assertNotSame($uri, $uri->withUserInfo('user', 'pass'));
-        $this->assertNotSame($uri, $uri->withHost('example.com'));
-        $this->assertNotSame($uri, $uri->withPort(8080));
-        $this->assertNotSame($uri, $uri->withPath('/path/123'));
-        $this->assertNotSame($uri, $uri->withQuery('q=abc'));
-        $this->assertNotSame($uri, $uri->withFragment('test'));
-    }
-
-    public function testExtendingClassesInstantiates()
-    {
-        // The non-standard port triggers a cascade of private methods which
-        //  should not use late static binding to access private static members.
-        // If they do, this will fatal.
-        $this->assertInstanceOf(
-            '\Tests\Nyholm\Psr7\ExtendingClassTest',
-            new ExtendingClassTest('http://h:9/')
-        );
-    }
-}
-
-class ExtendingClassTest extends \Nyholm\Psr7\Uri
-{
-}
diff --git a/vendor/psr/http-client/CHANGELOG.md b/vendor/psr/http-client/CHANGELOG.md
deleted file mode 100644
index 0bd22bb32b520e2acf61d648856f7f45ae163fc2..0000000000000000000000000000000000000000
--- a/vendor/psr/http-client/CHANGELOG.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file, in reverse chronological order by release.
-
diff --git a/vendor/psr/http-client/LICENSE b/vendor/psr/http-client/LICENSE
deleted file mode 100644
index cd5e0020afc2f89778937db2a8e3fc31c32b82b6..0000000000000000000000000000000000000000
--- a/vendor/psr/http-client/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2017 PHP Framework Interoperability Group
-
-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/psr/http-client/README.md b/vendor/psr/http-client/README.md
deleted file mode 100644
index 4892c32d88900ea23b9a12cce6e27f4ae098e665..0000000000000000000000000000000000000000
--- a/vendor/psr/http-client/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-PSR Http Client
-===============
-
-This repository holds all interfaces/classes/traits related to
-[PSR-18](http://www.php-fig.org/psr/psr-18/).
-
-Note that this is not an HTTP client implementation of its own. It is merely an
-interface that describes an HTTP client. See 
-[the specification](https://github.com/php-fig/fig-standards/blob/master/proposed/http-client/http-client.md)
-for more details.
-
-You can find implementations of the specification by looking for packages providing 
-the [psr/http-client-implementation](https://packagist.org/providers/psr/http-client-implementation)
-virtual package.
diff --git a/vendor/psr/http-client/composer.json b/vendor/psr/http-client/composer.json
deleted file mode 100644
index 78cb39b6d037cd672e089ee236029d29ce659032..0000000000000000000000000000000000000000
--- a/vendor/psr/http-client/composer.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-    "name": "psr/http-client",
-    "description": "Common interface for HTTP clients",
-    "keywords": ["psr", "psr-18", "http", "http-client"],
-    "homepage": "https://github.com/php-fig/http-client",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "PHP-FIG",
-            "homepage": "http://www.php-fig.org/"
-        }
-    ],
-    "require": {
-        "php": "^7.0",
-        "psr/http-message": "^1.0"
-    },
-    "autoload": {
-        "psr-4": {
-            "Psr\\Http\\Client\\": "src/"
-        }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.0.x-dev"
-        }
-    }
-}
diff --git a/vendor/psr/http-client/src/ClientException.php b/vendor/psr/http-client/src/ClientException.php
deleted file mode 100644
index 6c6be1691178e4bc2e54141d54c329bfa8e3def9..0000000000000000000000000000000000000000
--- a/vendor/psr/http-client/src/ClientException.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Psr\Http\Client;
-
-/**
- * Every HTTP client related Exception MUST implement this interface.
- */
-interface ClientException extends \Throwable
-{
-}
\ No newline at end of file
diff --git a/vendor/psr/http-client/src/ClientInterface.php b/vendor/psr/http-client/src/ClientInterface.php
deleted file mode 100644
index d29ef796f40b1569532018443aed1fcfbf3528fd..0000000000000000000000000000000000000000
--- a/vendor/psr/http-client/src/ClientInterface.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace Psr\Http\Client;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-interface ClientInterface
-{
-    /**
-     * Sends a PSR-7 request and returns a PSR-7 response.
-     *
-     * Every technically correct HTTP response MUST be returned as is, even if it represents a HTTP
-     * error response or a redirect instruction. The only special case is 1xx responses, which MUST
-     * be assembled in the HTTP client.
-     *
-     * The client MAY do modifications to the Request before sending it. Because PSR-7 objects are
-     * immutable, one cannot assume that the object passed to ClientInterface::sendRequest() will be the same
-     * object that is actually sent. For example the Request object that is returned by an exception MAY
-     * be a different object than the one passed to sendRequest, so comparison by reference (===) is not possible.
-     *
-     * {@link https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-7-http-message-meta.md#why-value-objects}
-     *
-     * @param RequestInterface $request
-     *
-     * @return ResponseInterface
-     *
-     * @throws \Psr\Http\Client\ClientException If an error happens during processing the request.
-     */
-    public function sendRequest(RequestInterface $request): ResponseInterface;
-}
diff --git a/vendor/psr/http-client/src/Exception/NetworkException.php b/vendor/psr/http-client/src/Exception/NetworkException.php
deleted file mode 100644
index 3b24090352bae04a637949c10ba6ec16084875c1..0000000000000000000000000000000000000000
--- a/vendor/psr/http-client/src/Exception/NetworkException.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace Psr\Http\Client\Exception;
-
-use Psr\Http\Client\ClientException;
-use Psr\Http\Message\RequestInterface;
-
-/**
- * Thrown when the request cannot be completed because of network issues.
- *
- * There is no response object as this exception is thrown when no response has been received.
- *
- * Example: the target host name can not be resolved or the connection failed.
- */
-interface NetworkException extends ClientException
-{
-    /**
-     * Returns the request.
-     *
-     * The request object MAY be a different object from the one passed to ClientInterface::sendRequest()
-     *
-     * @return RequestInterface
-     */
-    public function getRequest(): RequestInterface;
-}
\ No newline at end of file
diff --git a/vendor/psr/http-client/src/Exception/RequestException.php b/vendor/psr/http-client/src/Exception/RequestException.php
deleted file mode 100644
index 4c392bdc64940baff98f11b6362d16cc10d438e5..0000000000000000000000000000000000000000
--- a/vendor/psr/http-client/src/Exception/RequestException.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace Psr\Http\Client\Exception;
-
-use Psr\Http\Client\ClientException;
-use Psr\Http\Message\RequestInterface;
-
-/**
- * Exception for when a request failed.
- *
- * Examples:
- *      - Request is invalid (e.g. method is missing)
- *      - Runtime request errors (e.g. the body stream is not seekable)
- */
-interface RequestException extends ClientException
-{
-    /**
-     * Returns the request.
-     *
-     * The request object MAY be a different object from the one passed to ClientInterface::sendRequest()
-     *
-     * @return RequestInterface
-     */
-    public function getRequest(): RequestInterface;
-}
diff --git a/vendor/slim/slim/CODE_OF_CONDUCT.md b/vendor/slim/slim/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000000000000000000000000000000000000..7fcbf4e76d1d28d9ef723877c0c85ddba4aa1a39
--- /dev/null
+++ b/vendor/slim/slim/CODE_OF_CONDUCT.md
@@ -0,0 +1,8 @@
+# Code of Conduct
+
+The Slim Framework code of conduct is derived from the Ruby code of conduct. This document provides community guidelines for a safe, respectful, productive, and collaborative place for any person who is willing to contribute to the Slim Framework community. It applies to all “collaborative space”, which is defined as community communications channels (such as mailing lists, IRC, Slack, forums, submitted patches, commit comments, etc.). Any violations of the code of conduct may be reported by contacting one or more of the project maintainers either directly or via email to maintainers@slimframework.com.
+
+* Participants will be tolerant of opposing views.
+* Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.
+* When interpreting the words and actions of others, participants should always assume good intentions.
+* Behaviour that the project maintainers consider to be harassment will not be tolerated.